C++发送HTTP请求---亲测可行
转自:http://hi.baidu.com/benbearlove/item/1671c23017575825b3c0c53f
环境:xp sp3,vs2008,vs2010在静态库中使用 MFC
- #include <afxwin.h>
- #include <stdio.h>
- #include <windows.h>
- #include <string>
- #include "Wininet.h"
- #pragma comment(lib,"Wininet.lib")
- //模拟浏览器发送HTTP请求函数
- std::string HttpRequest(char * lpHostName,short sPort,char * lpUrl,char * lpMethod,char * lpPostData,int nPostDataLen)
- {
- HINTERNET hInternet,hConnect,hRequest;
- BOOL bRet;
- std::string strResponse;
- hInternet = (HINSTANCE)InternetOpen("User-Agent",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
- if(!hInternet)
- goto Ret0;
- hConnect = (HINSTANCE)InternetConnect(hInternet,lpHostName,sPort,NULL,"HTTP/1.1",INTERNET_SERVICE_HTTP,0,0);
- if(!hConnect)
- goto Ret0;
- hRequest = (HINSTANCE)HttpOpenRequest(hConnect,lpMethod,lpUrl,"HTTP/1.1",NULL,NULL,INTERNET_FLAG_RELOAD,0);
- if(!hRequest)
- goto Ret0;
- //bRet = HttpAddRequestHeaders(hRequest,"Content-Type: application/x-www-form-urlencoded",Len(FORMHEADERS),HTTP_ADDREQ_FLAG_REPLACE | HTTP_ADDREQ_FLAG_ADD);
- //if(!bRet)
- //goto Ret0;
- bRet = HttpSendRequest(hRequest,NULL,0,lpPostData,nPostDataLen);
- while(TRUE)
- {
- char cReadBuffer[4096];
- unsigned long lNumberOfBytesRead;
- bRet = InternetReadFile(hRequest,cReadBuffer,sizeof(cReadBuffer) - 1,&lNumberOfBytesRead);
- if(!bRet || !lNumberOfBytesRead)
- break;
- cReadBuffer[lNumberOfBytesRead] = 0;
- strResponse = strResponse + cReadBuffer;
- }
- Ret0:
- if(hRequest)
- InternetCloseHandle(hRequest);
- if(hConnect)
- InternetCloseHandle(hConnect);
- if(hInternet)
- InternetCloseHandle(hInternet);
- return strResponse;
- }
- void main()
- {
- //CString strResponse = HttpRequest("translate.google.com",80,"/translate_t?langpair=en|zh-CN","POST","hl=zh-CN&ie=UTF-8&text=this is me&langpair=en|zh-CN",strlen("hl=zh-CN&ie=UTF-8&text=this is me&langpair=en|zh-CN"));
- std::string strResponse = HttpRequest("www.hao123.com",80,NULL,"GET",NULL,0);
- FILE * fp = fopen("C:\\123.htm","wb");
- fwrite(strResponse.c_str(),strResponse.length(),1,fp);
- fclose(fp);
- }
C++发送HTTP请求---亲测可行相关推荐
- 一分钟解决连接git/github失败问题!亲测可行!
连接git/github失败问题 Git连接出错 镜像法 简单粗暴法 Github访问不上 找到解析时间最短的地址 修改配置文件 刷新配置 Git连接出错 完成基础配置后,始终不能进行git push ...
- Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行
Windows下Java+Tesseract-OCR对图像进行字符识别,亲测可行 1. 下载tesseract-ocr.中文语言包并安装 2. 命令行对图片进行识别及效果图 3. Java调用Tess ...
- vegas pro 15解决导入的视频和音频有噪声问题,亲测可行
vegas pro 15解决导入的视频和音频有噪声问题,亲测可行 参考文章: (1)vegas pro 15解决导入的视频和音频有噪声问题,亲测可行 (2)https://www.cnblogs.co ...
- python程序打包成exe可执行文件,亲测可行(pyinstaller教程)
python程序打包成exe可执行文件,亲测可行(pyinstaller教程)(11-20190214) 文章目录: 有些程序你不想让别人看到,由此程序你想做成绿色软件普惠大众,有些..., 然而你只 ...
- win10 安装 SqlServer2008 亲测可行
目录 准备: 开工: 总结: 准备: 网盘链接: 链接:https://pan.baidu.com/s/11Uc2alorjsAkEj1t0dxY3g 提取码:40bq 复制这段内容后打开百度网盘 ...
- ThinkBook 14P 15P 笔记本结束休眠后触控板手势失效问题解决 亲测可行
ThinkBook 14P 15P 笔记本结束休眠后触控板手势失效问题解决 亲测可行 发现这个问题以后在网上搜了很多,基本网上现有的方案无法彻底解决:比如重启.注销:我也咨询了联想官方客服,结果他们让 ...
- 可用的公开 RTSP/ RTMP 在线视频流资源地址(亲测可行)
可用的公开 RTSP/ RTMP 在线视频流资源地址(亲测可行) 时间节点:2023/01/23 rtsp: rtsp://wowzaec2demo.streamlock.net/vod/mp4:Bi ...
- 亲测可行ie8与ie11共存方法支持win7x64等
https://multibrowser.com/到这个网站上下载最新版本,然后在里面下载一个免费的ie8或者ie11就可以实现亲测可行ie8与ie11共存,我提供下载好的版本请看附件 附图:
- 数据库安装时需要更新以前的Visual Studio 2010实例状态失败-----亲测可行
数据库安装时"需要更新以前的Visual Studio 2010实例"状态失败 ...
最新文章
- 别太把图神经网络当回事儿
- 教程:10、VI编辑器
- linux stdin STDIN_FILENO 区别
- Java / 常见名词含义
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- 云效(原RDC)+ 容器服务完成持续集成
- 甜蜜暴击,情人节插画素材,甜而不腻!
- Python学习week4-set集合
- 远程连接 Mysql 失败的解决方法
- iOS端im实时音视频功能快速开发实操指导!
- Android API之android.view.View.MeasureSpec
- 【摘抄】SLAM中的位姿
- 干货|一文看懂BLE低功耗技术-附主流BLE芯片厂商介绍
- 软件工程知识点总结——第一、二部分
- 男人的梦想:世界名车标志
- 华为u8500在usb模式下logcat无法打印信息
- 字符串str.format()方法的个人整理
- yocs_velocity_smoother速度平滑库知识
- RelativeLayout 设置控件在最上层
- 笔记本怎么编html,笔记本win7深度技术旗舰版使用记事本编辑和运行html代码的方法...