求救啊,被困三天了,MFC使用WININET实验网页自动登录的问题

aerfaxing 2014-03-05 03:15:24
CInternetSession m_InetSession(_T("session"),
0,
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
INTERNET_FLAG_DONT_CACHE); //设置不缓冲
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString strHtml = "";
CString strRequest = _T("userAccount=chenkaijia&userpassword=admini"); //POST过去的数据

CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded");


try{
INTERNET_PORT nPort; //端口
nPort=80;
pServer = m_InetSession.GetHttpConnection(_T("www.wetoband.com"), nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,_T("/login"),NULL,1,NULL,_T("HTTP/1.1"),INTERNET_FLAG_RELOAD);
pFile->AddRequestHeaders(strHeaders);

pFile->SendRequestEx(strRequest.GetLength());
pFile->WriteString(strRequest);
pFile->EndRequest();
DWORD dwRet;
pFile->QueryInfoStatusCode(dwRet);


pFile->QueryInfoStatusCode(dwRet);

if(dwRet != HTTP_STATUS_OK)
{
CString errText;
errText.Format("POST出错,错误码:%d", dwRet);
AfxMessageBox(errText);
}

if (dwRet == HTTP_STATUS_OK){
// CString strLine;
CString strLine;
while ((pFile->ReadString(strLine))>0)
{
strHtml += strLine;
}
}
delete pFile;
delete pServer;
}
catch (CInternetException* e){
e->m_dwContext;
}

m_SiteInfo=strHtml; //m_SiteInfo是一个对话框关联变量,用来显示,与本程序无多大关系
UpdateData(false);
}
感觉我代码肯定哪里错误,求大神们救急啊
接收回来的信息就只有一个大括号 :{}
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sniffer12345 2014-03-05
  • 打赏
  • 举报
回复
CHttpConnection::HTTP_VERB_POST,_T("/login"), 你确定只是login吗? 另外,现在登录的话一般都是跳转的,跳转分两种,要是本地跳转,那你就得保持这个连接上下文(其实就是带了session),解析js,然后跳转到目标网页。如果是服务器跳转,那你就得响应301 另外,你这个代码也有问题: while ((pFile->ReadString(strLine))>0) { strHtml += strLine; } http头部有告诉你包的长度,你应该以接到完整包为目标,不能提前断掉
aerfaxing 2014-03-05
  • 打赏
  • 举报
回复
引用 1 楼 aerfaxing 的回复:
自顶,坐等高手
继续自顶,实在好急啊
aerfaxing 2014-03-05
  • 打赏
  • 举报
回复
自顶,坐等高手

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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