#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;
}
C++模拟post HTTP编程
最新推荐文章于 2024-08-20 12:56:39 发布