博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】c++ http下载文件
阅读量:6426 次
发布时间:2019-06-23

本文共 1706 字,大约阅读时间需要 5 分钟。

#include 
#include
#define RECVPACK_SIZE 2048bool DownloadSaveFiles(char* url,char *strSaveFile) {//下载文件并保存为新文件名 bool ret=false; CInternetSession Sess("lpload"); Sess.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT , 2000); //2秒的连接超时 Sess.SetOption(INTERNET_OPTION_SEND_TIMEOUT , 2000); //2秒的发送超时 Sess.SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT , 2000); //2秒的接收超时 Sess.SetOption(INTERNET_OPTION_DATA_SEND_TIMEOUT , 2000); //2秒的发送超时 Sess.SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, 2000); //2秒的接收超时 DWORD dwFlag = INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_RELOAD ; CHttpFile* cFile = NULL; char *pBuf = NULL; int nBufLen = 0 ; do { try{ cFile = (CHttpFile*)Sess.OpenURL(url,1,dwFlag); DWORD dwStatusCode; cFile->QueryInfoStatusCode(dwStatusCode); if (dwStatusCode == HTTP_STATUS_OK) { //查询文件长度 DWORD nLen=0; cFile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH, nLen); //CString strFilename = GetFileName(url,TRUE); nBufLen=nLen; if (nLen <= 0) break;// //分配接收数据缓存 pBuf = (char*)malloc(nLen+8); ZeroMemory(pBuf,nLen+8); char *p=pBuf; while (nLen>0) { //每次下载8K int n = cFile->Read(p,(nLen
Close(); Sess.Close(); delete cFile; } return ret;}int main() { DownloadSaveFiles("http://www.nirsoft.net/utils/nircmd.zip","d:\\cppdld_nircmd.zip"); return 0;}

http://bbs.csdn.net/topics/390052882

转载地址:http://cayga.baihongyu.com/

你可能感兴趣的文章
老男孩教育-linux面试题-笔试题-1
查看>>
PCMS V9多栏目多推荐位调用数据列表方法
查看>>
exchange2010平稳运行大半年后的一次故障
查看>>
我的友情链接
查看>>
03(maven+SSH)网上商城项目实战之数据库设计(PMD)
查看>>
HP D6000 盘柜配置
查看>>
常用的文件后缀
查看>>
使用ArcGIS API for Silverlight 进行复合多条件空间查询
查看>>
JavaScript之Ajax-5 JSON(JSON概述、使用JSON)
查看>>
在desktop上做AO的开发
查看>>
Mac 下安装常用软件。
查看>>
第一篇
查看>>
Istio 服务部署
查看>>
跟随外部世界的变化而变化
查看>>
mybatis之一:基本应用
查看>>
我的友情链接
查看>>
CentOS6.3下部署文件恢复神器extundelete
查看>>
Windows 2003 Server安全配置完整篇
查看>>
如何安装Oracle Database 11g数据库
查看>>
IPSEC ××× 的配置实例
查看>>