您的位置:首页 > 理论基础 > 计算机网络

C++ HTTP协议 下载文件

2014-11-07 10:56 309 查看
#include <stdio.h>

#include <windows.h>

#include <wininet.h>

#define MAXBLOCKSIZE 1024

void download(const char*);

int main(int argc, char* argv[]){

if(argc > 1){

download((const char*)argv[1]);

}else{

printf("Usage: auto-Update url");

}

return 0;

}

/**

* 执行 文件下载 操作

* @param Url: The target action url

*

*/

void download(const char *Url)

{

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)

{

printf("%s\n",Url);

byte Temp[MAXBLOCKSIZE];

ULONG Number = 1;

FILE *stream;

if( (stream = fopen( "F:\\LeadBridge\\new.exe", "wb" )) != NULL )//这里只是个测试,因此写了个死的文件路径

{

while (Number > 0)

{

InternetReadFile(handle2, Temp, MAXBLOCKSIZE - 1, &Number);

//fprintf(stream, (const char*)Temp);

fwrite(Temp, sizeof (char), Number , stream);

}

fclose( stream );

}

InternetCloseHandle(handle2);

handle2 = NULL;

}

InternetCloseHandle(hSession);

hSession = NULL;

}

}

地址:http://frank323.blog.163.com/blog/static/864341862008713513467/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: