C++ 发送POST请求
2013-10-29 21:12
183 查看
今天看了下关于MFC环境下的网络交互问题,发送POST请求的方法。在网上看了下别人的资料,在这里转载记录下,下面函数代码摘自CSDN论坛biweilun的帖子。
本来是想借用搜狗实验室的分析系统,想用post请求响应的php返回相应的结果,但是有跨域访问问题,无奈之下只好先把问题放放,等其他作业写完之后再来看看。
本来是想借用搜狗实验室的分析系统,想用post请求响应的php返回相应的结果,但是有跨域访问问题,无奈之下只好先把问题放放,等其他作业写完之后再来看看。
#include "afxinet.h" /* 发送post请求 第一个参数为URL头 第二个参数为要post表单的内容 第三个参数用于保存页面返回的信息 第四个参数用于记录日志 */ bool PostContent(CString strUrl, const CString &strPara, CString &strContent, CString &strDescript) { try{ strDescript = "提交成功完成!"; bool bRet = false; CString strServer, strObject, strHeader, strRet; unsigned short nPort; DWORD dwServiceType; if(!AfxParseURL(strUrl, dwServiceType, strServer, strObject, nPort)) { strDescript = strUrl + "不是有效有网络地址!"; return false; } CInternetSession sess;//Create session CHttpFile* pFile; CHttpConnection *pServer = sess.GetHttpConnection(strServer, nPort); if(pServer == NULL) { strDescript = "对不起,连接服务器失败!"; return false; } pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,strObject,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT); if(pFile == NULL) { strDescript = "找不到网络地址" + strUrl; return false; } CString strHeaders = _T("Content-Type:application/x-www-form-urlencoded;Access-Control-Allow-Origin:http://www.sogou.com"); pFile -> SendRequest(strHeaders, (LPTSTR)(LPCTSTR)strPara, strPara.GetLength()); CString strSentence; DWORD dwStatus; DWORD dwBuffLen = sizeof(dwStatus); BOOL bSuccess = pFile->QueryInfo( HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen); if( bSuccess && dwStatus>= 200 && dwStatus<300) { char buffer[256]; memset(buffer, 0, 256); int nReadCount = 0; while((nReadCount = pFile->Read(buffer, 2048)) > 0) { strContent += buffer; memset(buffer, 0, 256); } bRet = true; } else { strDescript = "网站服务器错误" + strUrl; bRet = false; } //////////////////////////////////////// pFile->Close(); sess.Close(); return bRet; } catch(...) { int nCode = GetLastError(); strDescript.Format("向服务器post失败!错误号:%d", nCode); return false; } }
相关文章推荐
- C/C++使用libcurl库发送http请求(get和post可以用于请求html信息,也可以请求xml和json等串)
- C++网络编程 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- C++ 实现 发送HTTP Get/Post请求 good
- 网络通信第四课 C++发送Post请求的完整案例
- C++ 实现 发送HTTP Get/Post请求
- c++如何使用SOCKET 发送HTTP1.1 GET POST请求包
- c++ 使用libcurl 发送http get/post请求
- C++网络编程 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- c++ HTTP POST请求 向服务器发送json数据
- C/C++使用libcurl库发送http请求(get和post可以用于请求html信息,也可以请求xml和json等串)
- 使用jQuery发送POST,Ajax请求返回JSON格式数据
- java发送http的get、post请求工具类
- 《转》使用NSURLSession发送GET和POST请求
- 不同浏览器发送POST请求分包情况比较。
- Python发送get,post请求
- [Socket]利用Jatarka下HttpClient发送(Get && Post)请求
- 使用fetch发送post请求时的参数处理
- ajax的get 和post方式发送请求
- Android入门:发送HTTP的GET和POST请求
- 利用ASIHttpRequest框架进行网络数据请求(二)—— 利用post发送表单请求数据