本文转自:http://www.cppblog.com/kyelin/archive/2007/05/08/23628.html

//==========> 初始化回话
HINTERNET hSession=::InternetOpen("Http",
PRE_CONFIG_INTERNET_ACCESS,
"",
INTERNET_INVALID_PORT_NUMBER,
0);

if(hSession==NULL){
AfxMessageBox("Internet session initalization failed!");
return 1;
}

//==========> 创建链接
HINTERNET hConnect=::InternetConnect(hSession,
pDlg->m_strServer,
INTERNET_INVALID_PORT_NUMBER,
"",
"",
INTERNET_SERVICE_HTTP,
0,
0);

if(hConnect==NULL){
AfxMessageBox("Internet connect initialization failed!");
VERIFY(::InternetCloseHandle(hSession));
return 1;
}

//==========> 打开请求链接
HINTERNET hHttpFile=::HttpOpenRequest(hConnect,
"GET",
pDlg->m_strPath,
HTTP_VERSION,
NULL,
0,
INTERNET_FLAG_DONT_CACHE,
0);

if(hHttpFile==NULL){
AfxMessageBox("Http request failed!");
VERIFY(::InternetCloseHandle(hConnect));
VERIFY(::InternetCloseHandle(hSession));
return 1;
}

//==========> 发送请求
BOOL bSendRequest=::HttpSendRequest(hHttpFile,
NULL,
0,
0,
0);

if(bSendRequest){
char achQueryBuf[16];
DWORD dwFileSize;
DWORD dwQueryBufLen=sizeof(achQueryBuf);

BOOL bQuery=::HttpQueryInfo(hHttpFile,
HTTP_QUERY_CONTENT_LENGTH,
achQueryBuf,
&dwQueryBufLen,
NULL);

if(bQuery){
dwFileSize=(DWORD)atol(achQueryBuf);
}
else{
dwFileSize=10*1024;
}

char* lpszBuf=new char[dwFileSize+1];
DWORD dwBytesRead;

//==========> 读取文件
BOOL bRead=::InternetReadFile(hHttpFile,
lpszBuf,
dwFileSize+1,
&dwBytesRead);

普通操作步骤:
-------------------------------------------------------------------------
开始 HTTP 会话。 创建 CInternetSession 对象。 初始化 WinInet 并连接到服务器。 
连接到 HTTP 服务器。 使用 CInternetSession::GetHttpConnection。 返回 CHttpConnection 对象。 
打开 HTTP 请求。 使用 CHttpConnection::OpenRequest。 返回 CHttpFile 对象。 
发送 HTTP 请求。 使用 CHttpFile::AddRequestHeaders 和 CHttpFile::SendRequest。 查找文件。如果没有找到该文件,则返回 FALSE。 
从文件中读取。 使用 CHttpFile。 使用您提供的缓冲区读取指定数目的字节。 
处理异常。 使用 CInternetException 类。 处理所有常见的 Internet 异常类型。 
结束 HTTP 会话。 处置 CInternetSession 对象。 自动清理打开的文件句柄和连接。

C++ 一些http操作函数相关推荐

  1. day3----编码-集合-深浅copy-文件操作-函数初识

    day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...

  2. 使用文件操作函数实现:文件的复制功能。

    2019独角兽企业重金招聘Python工程师标准>>> //使用文件操作函数实现:文件的复制功能. #include <stdio.h> #include <std ...

  3. Python—pandas中DataFrame类型数据操作函数

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构.  本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数.  1)查看DataFram ...

  4. 《Arduino开发实战指南:机器人卷》一2.1 数字I/O口的操作函数

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.1节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  5. python中string的操作函数

    在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专门的string的module,要使用string的方法 ...

  6. php进入目录,php文件,文件夹(目录)操作函数总结

    本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法做个备注. 1.创建目录(mkdir) bool mkdir (string $pathnam ...

  7. php文件有哪几种,PHP常用的文件操作函数有哪些

    PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...

  8. Spark Streaming中的操作函数分析

    参考文章:http://blog.csdn.net/dabokele/article/details/52602412 根据Spark官方文档中的描述,在Spark Streaming应用中,一个DS ...

  9. 时间:2014年3月27日文件和目录操作函数

    主要内容: 目录操作:打开.读取.关闭.创建.重命名.删除 文件操作:打开.读.写.关闭.重命名.删除 信息获取函数 filemtime() filesize() file_exists()  is_ ...

  10. unicode字符串操作函数 vc

    宽字符集(unicode)操作函数 https://blog.csdn.net/oe516wu/article/details/41379123 转载于:https://www.cnblogs.com ...

最新文章

  1. Python 类的特性讲解
  2. markdown mysql高亮_修改博客园markdown编辑器代码高亮风格的方法
  3. 软件架构师的工作流程
  4. php thread linux,Linux_linux内核函数kernel_thread,设备驱动程序中,如果需要几 - phpStudy...
  5. 号称36个月不卡顿!网友:就是有点贵
  6. mysql编译安装原理_MySQL编译安装全过程
  7. BERT4Rec:当NLP王者BERT进军推荐领域
  8. hp t410微型计算机使用,HP 发表新款 t410 AIO Smart Zero 精简型电脑,仅需网络线即可作为电源驱动使用...
  9. 分享21个超棒的单页面HTML作品集展示模板
  10. 电信机顶盒,废弃机顶盒复活,华为电信定制机顶盒,固件。设置关闭限制apk选项。安装自己所需的apk软件。
  11. 推荐的开源 PHP CMS 系统
  12. 流量卡之家:物联网和人工智能如何实现环境可持续性
  13. 阿里云国际版Windows操作系统的ECS云服务器上搭建WordPress网站
  14. 五款免费开源的语音识别工具
  15. 创业公司如何搭建服务器配置方案?
  16. 随便学学Python-day10-函数的进阶
  17. AI视频插帧 附带『视频插帧』工具
  18. 全球与中国电子纸行业调查与未来发展趋势研究报告
  19. 云套件将http协议改为https协议
  20. 威学一百_威学一百安卓版下载|威学一百app下载_v1.0.3_9ht安卓下载

热门文章

  1. 自学Java达到什么水平可以找工作
  2. linux查看主机厂商,linux下查看主机硬件信息
  3. 人员梯度培养_(完整版)人才梯队培养计划执行方案
  4. Mysql之UDF提权
  5. CentOS 更新yum源
  6. Java篇一——第一个程序
  7. IP协议(IP地址的数量限制 | NAT机制)
  8. 铜须事件女主角幽月儿首度发表声明
  9. 关公战秦琼手游java,一战成名官网下载-一战成名手游下载v1.1.5 安卓最新版-2265手游网...
  10. python plt figure_【Python】 【绘图】plt.figure()的使用