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/
#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/
相关文章推荐
- 从FTP下载文件(C++,Win32)
- C++通过http下载二进制文件
- 用InternetOpen下载小文件 vc c++
- C++通过http下载二进制文件
- 使用HTTP协议 下载文件
- 基于HTTP协议用WinSock实现任意文件下载
- (转)用InternetOpen下载小文件 vc c++
- 用InternetOpen下载小文件 vc c++
- 用InternetOpen下载小文件 vc c++
- 开源的 C++ p2p文件下载软件 shareaza
- Linux下Socket写http协议下载文件代码以及说明
- 用http协议获取下载文件的大小
- C++通过http下载二进制文件
- Java实现基于http协议的网络文件下载
- Linux下Socket写http协议下载文件代码以及说明
- Linux下Socket写http协议下载文件代码以及说明
- 用InternetOpen下载小文件 vc c++
- 利用HTTP协议实现文件下载的多线程断点续传
- http协议 文件下载原理详解
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】