Http Post 问题

fontain 2008-02-17 06:04:24
我需要向http服务器提交一个表单,用ieHttpHeaders获得该页提交的数据如下

POST /pls/wwwcjlr/cjlr.GradeInput HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, */*
Referer: http://202.206.1.161:7777/pls/wwwcjlr/cjlr.GradeInput?p_kch=09020&p_kxh=3&userid=B2024&p_bybz=本科&p_time=1&ps_inputtype=录入分数成绩&sycj=2&pscj=1&qzcj=2&qmcj=1&userid=B2024
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: 202.206.1.161:7777
Content-Length: 2675
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ACCOUNT=B20240217174054

ps_inputtype=%C2%BC%C8%EB%B7%D6%CA%FD%B3%C9%BC%A8&p_tjzt=%D4%DD%B4%E6&p_kch=09020&p_kxh=3&userid=B2024&pscj=1&sycj=2&qzcj=2&qmcj=1&ps_inputtype=%C2%BC%C8%EB%B7%D6%CA%FD%B3%C9%BC%A8&p_bybz=%B1%BE%BF%C6&p_cxcklb=%2C&p_xh=2005430092&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430009&p_kssj=20080115&p_pscj=&p_qmcj=31&p_kscj=&p_cxck=&p_xh=2005430010&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430018&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430024&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430025&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430027&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430033&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430034&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430035&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430037&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430038&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430040&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430044&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430050&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430057&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430066&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430069&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430070&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430072&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430074&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430077&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430081&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430085&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430086&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430093&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430099&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430100&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430101&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430104&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430106&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430107&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430109&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430111&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430126&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430128&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430153&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_xh=2005430154&p_kssj=20080115&p_pscj=&p_qmcj=&p_kscj=&p_cxck=&p_time=1&p_fun=%D4%DD%B4%E6

==================
我的代码:
CInternetSession session;
// try
// {
CHttpConnection* pConnection =session.GetHttpConnection(L"202.206.1.161",INTERNET_PORT(7777)); //网站服务器
CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,L"/pls/wwwcjlr/cjlr.GradeInput"); //直接向分数处理页面提交数据
//下面向提交数据中添加HTTP头,这些可以由网络监视器得到
CString strTemp;
pFile->AddRequestHeaders(L"POST /pls/wwwcjlr/cjlr.GradeInput HTTP/1.1");
pFile->AddRequestHeaders(L"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, */*");
pFile->AddRequestHeaders(L"Referer: http://202.206.1.161:7777/pls/wwwcjlr/cjlr.GradeInput?p_kch=09020&p_kxh=3&userid=B2024&p_bybz=本科&p_time=1&ps_inputtype=录入分数成绩&sycj=2&pscj=1&qzcj=2&qmcj=1&userid=B2024");
pFile->AddRequestHeaders(L"Accept-Language: zh-cn");
pFile->AddRequestHeaders(L"Content-Type: application/x-www-form-urlencoded");
pFile->AddRequestHeaders(L"Accept-Encoding: gzip, deflate");
pFile->AddRequestHeaders(L"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
pFile->AddRequestHeaders(L"Host: 202.206.1.161:7777");
strTemp.Format (L"Content-Length: %d",strPostData.GetLength());
pFile->AddRequestHeaders(strTemp);
pFile->AddRequestHeaders(L"Connection: Keep-Alive");
pFile->AddRequestHeaders(L"Cache-Control: no-cache");
pFile->AddRequestHeaders(L"Cookie: "+cookie);
pFile->AddRequestHeaders(L"\n");

pFile->SendRequest(NULL,0,strPostData.GetBuffer(0),strPostData.GetLength()); //提交所有数据
//pFile->Close();
//delete pFile;
//delete pConnection;
//session.Close();
//return true;


char szBuffer[11001]; //用来存放返回的处理页面,要多大看实际情况。当然也可以动态分配,不嫌累的话
int nLen=pFile->Read(szBuffer,11000);//读取返回的内容
szBuffer[nLen]=0;
strTemp=CString(szBuffer); //CString虽然滥了些,但用着就是方便,嘿嘿~
pFile->Close(); //数据读出来后把该关闭的东西都关掉
pConnection->Close();
delete pFile;
delete pConnection;
session.Close();
    return true;
=================
问题:返回400错误,哪位达人能指点一下,不胜感谢
...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fontain 2008-02-17
  • 打赏
  • 举报
回复
谢谢你,确实是宽字符的问题,问题不在headers上,在PostData,改成char *调试通过
greatws 2008-02-17
  • 打赏
  • 举报
回复
可以参考下我回的这贴
http://topic.csdn.net/u/20080214/20/0c9541e3-fd1a-488f-9bcd-c3d05fbb51dd.html
fontain 2008-02-17
  • 打赏
  • 举报
回复
谢谢,我试试看
greatws 2008-02-17
  • 打赏
  • 举报
回复
用抓包工具阿,和VC没关系的,我一直用Sniffer4.75的,功能强大,好用
fontain 2008-02-17
  • 打赏
  • 举报
回复
我是用unicode 创建的工程,AddRequestHeaders的默认说明是使用宽字符,自己写的程序发送包用什么方法抓能说下吗?
greatws 2008-02-17
  • 打赏
  • 举报
回复
pFile-> AddRequestHeaders(L"POST /pls/wwwcjlr/cjlr.GradeInput HTTP/1.1");

这些为什么要用宽字符呢?这样的话,发送出去的内容有可能不对,你可以抓包看看发出去的内容具体是什么

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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