C++ POST方式访问网页
来源:互联网 发布:模拟mysql宕机 编辑:程序博客网 时间:2024/06/13 20:38
用C++打开网页时,有两种方式,一种是get方式,另一种为post方式。get方式为一般常用的方式,我们在地址栏中键入网址打开网站就属于get方式。而post方式则比较麻烦,如下函数实现了用post方式访问网页。
bool PostContent(CString strUrl, const CString &strPara, CString &strContent, CString &strDescript)//第一个参数为URL头
{ //第二个参数为要post表单的内容
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;
}
pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
pFile -> AddRequestHeaders("Accept: */*");
pFile -> SendRequest(NULL, 0, (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;
}
}
以上代码摘自CSDN论坛biweilun的帖子。
- C++ POST方式访问网页
- C++ 以POST方式向网页提交数据
- C++ post方式请求网页
- HttpComponents(Apache HttpComponents Client 4.1.3)通过Post方式访问网页或传输参数
- AndroidStudio访问网络-Post方式
- POST获取COOKIES,,带COOKIES访问网页
- HttpClient的Post和Get访问网页
- libcurl POST访问网页后,好像没有POST成功参数
- 用Post方式抓取一个网页
- 用Post方式抓取一个网页
- PHPSpider使用记录-post方式抓取网页
- 网页提交方式post,到底post了些什么?
- 通过Post方式访问Web页面
- Post方式访问Http或者是Webserver
- android post 方式 访问网络 实例
- JAVA通过HTTP访问:Post+Get方式
- JAVA通过HTTP访问:Post+Get方式
- Http Post 方式访问Web Service
- 关于 王爽 汇编综合研究 研究实验五 函数如何接受不定量的参数 (偷工法)
- 【连载】【STM32神舟III号实验例程】流水灯实验(实验一)
- 浅析Linux下sdio接口对sd卡硬件检测流程
- php输出星期几
- svn文件修改的各种状态
- C++ POST方式访问网页
- n*n螺旋矩阵的实现
- solr学习
- QT程序启动界面的使用
- OGRE资源的四种状态
- 计算机信息管理在第三方物流中的应用
- 昨天面试遇到的笔试题,关于String操作的。
- java运行参数的语法
- Windows Live Writer 插入代码块 NullReferenceException