阳光大道为你点赞 模特:如何用C下载HTTPS上的文件

来源:百度文库 编辑:高校问答 时间:2024/05/05 01:36:24
我用C写一个文件下载程序,用到<wininet.h>,目的是下载HTTPS上的文件,但是只能下载HTTPS上的文件,哪位大吓可以帮帮我.程序如下:
#include <windows.h>
#include <wininet.h>
#include <stdio.h>

#define MAXBLOCKSIZE 1024

void download(const char* Url);
/*
* 执行 文件下载 操作
*
*/

/*int main(int argc, char* argv[])
{
if (argc > 1)
{
download((const char*)argv[1]);
}
else
{
//printf(Usage: auto-Update url);
printf("%s", "OK");
}

return 0;
}*/

main()
{
//download("https://192.168.1.1/users/ca.crt");
download("http://news.sina.com.cn/");
}

void download(const char* Url)
{
HINTERNET hSession = InternetOpen("xxx", 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 ", Url);
byte Temp[MAXBLOCKSIZE];
ULONG Number = 1;

FILE *stream;
if( (stream = fopen( ".\\temp", "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;
}
}

汗 好象放错分类了吧