C++模拟post HTTP编程

发表于:2014-4-17 10:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yueyaquanBoy    来源:51Testing软件测试网采编

#include <iostream>
#include <string>
using namespace std;
#include <afxinet.h>
bool PostHttpPage(const std::string& hostname,
const std::string& pathname,
const std::string& postdata)
{
CInternetSession session("your app agent name");
try
{
INTERNET_PORT nPort = 80;
DWORD dwRet=0;
CHttpConnection * pServer = session.GetHttpConnection(hostname.c_str(),nPort);
CHttpFile * pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,pathname.c_str());
CString strHeader = "Content-Type: application/x-www-form-urlencoded";  // 请求头
// 开始发送请求
pFile->SendRequest(strHeader,(LPVOID)postdata.c_str(),postdata.size());
pFile->QueryInfoStatusCode(dwRet);
if (dwRet==HTTP_STATUS_OK)
{
CString strResult,strNewline;
while(pFile->ReadString(strNewline))
{// 循环读取每行内容
strResult += strNewline+"\r\n";
}
std::cout<<strResult<<std::endl;  // 显示返回内容
}
else
{
return false;
}
delete pFile;
delete pServer;
}
catch (CInternetException * e)
{
// catch errors from WinInet
TCHAR pszError[200];
e->GetErrorMessage(pszError,200);
std::cout<<pszError<<std::endl;  // 显示异常信息
return false;
}
session.Close();
return true;
}
int main(void)
{
string postdata = "要提交的数据";
PostHttpPage("IP地址","index.jsp?text=true",postdata);  // 测试
//cout<<postdata<<endl;
getchar();
return 1;
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号