C++模拟post HTTP编程

Phedra ·
更新时间:2024-11-10
· 984 次阅读

#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+" "; } 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; }



模拟post c+ HTTP C++ post

需要 登录 后方可回复, 如果你还没有账号请 注册新账号