我知道如何下载html / txt页面.例如 :

//Variables

DWORD dwSize = 0;

DWORD dwDownloaded = 0;

LPSTR pszOutBuffer;

vector vFileContent;

BOOL bResults = FALSE;

HINTERNET hSession = NULL,

hConnect = NULL,

hRequest = NULL;

// Use WinHttpOpen to obtain a session handle.

hSession = WinHttpOpen( L"WinHTTP Example/1.0",

WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,

WINHTTP_NO_PROXY_NAME,

WINHTTP_NO_PROXY_BYPASS, 0);

// Specify an HTTP server.

if (hSession)

hConnect = WinHttpConnect( hSession, L"nytimes.com",

INTERNET_DEFAULT_HTTP_PORT, 0);

// Create an HTTP request handle.

if (hConnect)

hRequest = WinHttpOpenRequest( hConnect, L"GET", L"/ref/multimedia/podcasts.html",

NULL, WINHTTP_NO_REFERER,

NULL,

NULL);

// Send a request.

if (hRequest)

bResults = WinHttpSendRequest( hRequest,

WINHTTP_NO_ADDITIONAL_HEADERS,

0, WINHTTP_NO_REQUEST_DATA, 0,

0, 0);

// End the request.

if (bResults)

bResults = WinHttpReceiveResponse( hRequest, NULL);

// Keep checking for data until there is nothing left.

if (bResults)

do

{

// Check for available data.

dwSize = 0;

if (!WinHttpQueryDataAvailable( hRequest, &dwSize))

printf( "Error %u in WinHttpQueryDataAvailable.\n",

GetLastError());

// Allocate space for the buffer.

pszOutBuffer = new char[dwSize+1];

if (!pszOutBuffer)

{

printf("Out of memory\n");

dwSize=0;

}

else

{

// Read the Data.

ZeroMemory(pszOutBuffer, dwSize+1);

if (!WinHttpReadData( hRequest, (LPVOID)pszOutBuffer,

dwSize, &dwDownloaded))

{

printf( "Error %u in WinHttpReadData.\n",

GetLastError());

}

else

{

printf("%s", pszOutBuffer);

// Data in vFileContent

vFileContent.push_back(pszOutBuffer);

}

// Free the memory allocated to the buffer.

delete [] pszOutBuffer;

}

} while (dwSize>0);

// Report any errors.

if (!bResults)

printf("Error %d has occurred.\n",GetLastError());

// Close any open handles.

if (hRequest) WinHttpCloseHandle(hRequest);

if (hConnect) WinHttpCloseHandle(hConnect);

if (hSession) WinHttpCloseHandle(hSession);

// Write vFileContent to file

ofstream out("test.txt",ios::binary);

for (int i = 0; i < (int) vFileContent.size();i++)

out << vFileContent[i];

out.close();

当我尝试下载图片时,我只得到文件的第一行,没有错误信息.问题似乎与WinHttpOpenRequest函数中的此参数(ppwszAcceptTypes)有关.

c语言c 下载文件,如何在C/C++中使用WinHTTP下载文件?相关推荐

  1. Android单元测试读写文件,如何在Android单元测试中读取仅测试文件

    对于我的Android应用程序,我正在编写需要读取一些文件的单元测试. 由于这些是仅测试文件,因此我不希望它们出现在res文件夹中,因为我不希望它们最终出现在最终的.apk文件中. 我想做与此问题类似 ...

  2. bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...

    如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g) 我有Oracle 11g备份文件(.bak文件)如何在Oracle 11g ...

  3. IDEA下,如何在java项目中新增jsp模板文件

    IDEA下,如何在java项目中新增jsp模板文件 大家会不会有这样的烦恼,就是当想要创建一个jsp模板文件的时候,右键new的时候找不到JSP选项. 这是因为在创建项目的时候没有选中Web Appl ...

  4. K8S客户端Kubectl无法下载问题的解决办法-到中科大USTC下载

    K8S客户端Kubectl无法下载问题的解决办法-到中科大USTC下载 存在问题: 国外网站访问太慢,kubectl如何下载?(官方的文件位于googleapis网站上) 解决思路: 1.到国内中科大 ...

  5. ps快捷图标在哪个文件夹_在PS中制作一个下载文件夹的图标

    在PS中制作一个下载文件夹的图标 出处:多特软件站  时间:2011-03-17  人气:1287我要提问我来说两句 核心提示:在这个教程里,我们将介绍到如何在PS中运用不同的形状和反射制作一个下载文 ...

  6. Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...

    我在硬故障处理程序中有一些程序集.程序集基本上是为了传递当前堆栈指针作为参数(在R0中).它看起来像这样...如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数? __asm(&quo ...

  7. 如何在OS X中打印到PDF文件

    如何在OS X中打印文件到PDF文件? 其实不需要安装任何其他软件,OS X本身支持打印到PDF文件这个功能. 具体操作详见下面文章: Want to save a document or web p ...

  8. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  9. php DOS word在线预览,如何在 Zoho Docs 中在线预览文件

    文件预览 简介 预览让您可以概要了解您的长文档.视频或图册.通过预览让您可以一览文件中的内容. 关于 Zoho Docs 中的预览的以下信息将帮助您:使用预览工具栏. 编辑 MS Office 文件. ...

最新文章

  1. cisco路由器针对进行ip限速
  2. spring18-1:采用jdk的动态代理 proxy。
  3. Zw*与Nt*的区别
  4. node sqlite 插入数据_使用 Sequelize 操作 Sqlite3 数据库
  5. 各纬度气候分布图_地理:世界各种气候类型分布图(高清版)汇总!以及解答分析哦~...
  6. 使用 node.js 进行服务器端 JavaScript 编程
  7. unsigned char与char的区别
  8. 从714里连续减去6减几次得0_小学数学1—6年级基础知识整理 ,预习复习都能用...
  9. 搭建Struts2开发环境
  10. LC3无重复最长字串
  11. 音乐制作宿主软件-Cubase Elements 11.0.20 MacOS
  12. oracle使用sql关闭trace日志,Linux清理Oracle日志巧用close_trace命令释放误删trace文件...
  13. Eclipse版本号及各个版本区别
  14. CSS clip:rect矩形剪裁功能及一些应用介绍
  15. 亚马逊ERP贴牌OEM代理贴牌是什么意思 起到一个什么样的作用
  16. ffmpeg断流黑屏问题分析
  17. docker(3) : 相关连接
  18. 初、中、高级前端工程师水平怎么划分?
  19. mipcms文章详情调用
  20. 解决Error:CreateProcess error=193,1%不是有效的Win32应用程序

热门文章

  1. Shader——自发光效果
  2. Java里重写toString的作用
  3. Exception in thread ContainerBackgroundProcessor[StandardEngine[Catalina]] java.lang.OutOfMemoryEr
  4. 国货百雀羚化妆品---大数据分析
  5. HTML的两种盒子模型
  6. Linux下的lds连接脚本详解,Linux链接脚本学习--lds
  7. JAVA读取邮件 [AUTH] Username and password not accepted
  8. Siammask源码demo运行配置
  9. GPU加速在前端的应用
  10. 服务器开机显示0x000000ca,使用电脑出现蓝屏代码0x000000CA故障该如何解决?