想写个文件下载器
http的吧
比如http://images.enet.com.cn/eschool/corldrawx3/367992.swf这样的存为1.swf
在csdn搜源码费了我不少分,不知道是人笨还是咋的,不如直接在这求了
[解决办法]
- C/C++ code
#include <stdio.h>#include <windows.h>#include <wininet.h>#define MAXBLOCKSIZE 1024#pragma comment( lib, "wininet.lib" ) void download(const char *Url,const char *save_as)/*将Url指向的地址的文件下载到save_as指向的本地文件*/{ byte Temp[MAXBLOCKSIZE]; ULONG Number = 1; FILE *stream; HINTERNET hSession = InternetOpen("RookIE/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (hSession != NULL) { HINTERNET handle2 = InternetOpenUrl(hSession, Url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0); if (handle2 != NULL) { if( (stream = fopen( save_as, "wb" )) != NULL ) { while (Number > 0) { InternetReadFile(handle2, Temp, MAXBLOCKSIZE - 1, &Number); fwrite(Temp, sizeof (char), Number , stream); } fclose( stream ); } InternetCloseHandle(handle2); handle2 = NULL; } InternetCloseHandle(hSession); hSession = NULL; }}int main(int argc, char* argv[]){ download("http://blog.csdn.net/agoago_2009/","C:\\Users\\ago\\Desktop\\index.html"); return 0;}
[解决办法]
应该就是发一个HTTP的GET请求。然后把服务器返回的数据保存到1.swf
[解决办法]
发GET包
然后根据返回的http包解析出Content-Length
Content-Length就是文件的长度 后面附带的就是文件