CHttpFile实现POST请求疑问

BetaBin 2013-04-22 09:15:15
想写个东西自动在notepad.cc发布记事,可是出问题。
比如我要在http://notepad.cc/betabin页面发布东西,采用如下代码:
可是会把记事本里面的内容清空,而不是我想发布的“abc”。
求前辈指教!
	try
{
#define MAX_COUNT 1024
CInternetSession session(_T("session"));
INTERNET_PORT nPort = 80;
CHttpConnection* pHttpConnect = session.GetHttpConnection(_T("notepad.cc"), nPort);
if(pHttpConnect)
{
CHttpFile* pFile = pHttpConnect->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/ajax/update_contents/betabin"));
if(pFile)
{
// 这里是请求头信息,由抓包工具得到该信息
pFile->AddRequestHeaders(_T("POST /ajax/update_contents/betabin HTTP/1.1"));//
pFile->AddRequestHeaders(_T("Host: notepad.cc"));//
pFile->AddRequestHeaders(_T("Connection: keep-alive"));//
pFile->AddRequestHeaders(_T("Content-Length: 50"));//
pFile->AddRequestHeaders(_T("Accept: text/javascript, text/html, application/xml, text/xml, */*"));//
pFile->AddRequestHeaders(_T("X-Prototype-Version: 1.6.0"));
pFile->AddRequestHeaders(_T("Origin: http://notepad.cc"));
pFile->AddRequestHeaders(_T("X-Requested-With: XMLHttpRequest"));
pFile->AddRequestHeaders(_T("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"));
pFile->AddRequestHeaders(_T("Content-type: application/x-www-form-urlencoded; charset=UTF-8"));
pFile->AddRequestHeaders(_T("Referer: http://notepad.cc/lala"));
pFile->AddRequestHeaders(_T("Accept-Encoding: gzip,deflate,sdch"));
pFile->AddRequestHeaders(_T("Accept-Language: zh-CN,zh;q=0.8"));
pFile->AddRequestHeaders(_T("Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3"));

TCHAR szRequest[MAX_COUNT] = _T("contents=abc&caret_position=3&scroll_position=0&_=");
//pFile->SendRequest(NULL, 0, szRequest, _tcslen(szRequest)+1);
pFile->SendRequest(NULL, 0, szRequest, _tcslen(szRequest)+1);

CString strStatus(_T("beta"));
if(pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strStatus))
{
//AfxMessageBox(strStatus);
printf("%s\n", (char *)(LPCTSTR)strStatus);
}
pFile->Close();
delete pFile;
pFile = NULL;
}
}
pHttpConnect->Close();
delete pHttpConnect;
pHttpConnect =NULL;
session.Close();
}
catch (CInternetException* e)
{
e->ReportError();
e->Delete();
}

(notepad.cc的POST记事请求包如下:
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾有一个人 2013-04-23
  • 打赏
  • 举报
回复
其实已经post成功了,
你把在post之前先用ie打开网页,记录下这个地址,再post,打开网址内容就变成你post的abc了。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧