读书人

WININET GET得到header 后少了几行数据

发布时间: 2013-02-19 11:11:40 作者: rapoo

WININET GET得到header 后少了几行数据的小问题
数据抓包结果如下
HTTP/1.1 200 OK
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: XISESSIONID=t5w7tgdyrcluc8yyedlxjuax;Path=/robot
Content-Type: text/plain; charset=utf-8
Content-Length: 183

__webrobot__processOpenResponse({"robotId":"webbot","userId":"5e1b057f8fd14ee5908f648e535f5633","sessionId":"78eed3c9147e4c2f87dbbc5a54a5e9e1","type":"openresp","body":{"status":1}});

CString header("");
pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF ,header,0);

header结果却是
HTTP/1.1 200 OK
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: XISESSIONID=t5w7tgdyrcluc8yyedlxjuax;Path=/robot
Content-Type: text/plain; charset=utf-8
Content-Length: 183


后面的那两行不见了 求坛友看看是什么问题
[解决办法]
有错吗?你是得到header啊,你已经得到了header了,后面的不是header了。
[解决办法]
如何通过VC的 CHttpFile 抓取网页内容 [2009-6-30 13:08:02]

在点击一个按钮时开始请求你输入的地址。

void CHttpFileDlg::OnButton1() 
{
  CString url;
  GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。
  char* headers="Accept:*/*\r\nAccept-Language:zh-cn\r\nUser-Agent:VCTestClient\r\n";
  CInternetSession Sess;
  CHttpFile* cFile = (CHttpFile*)Sess.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII
[解决办法]
INTERNET_FLAG_RELOAD,headers,strlen(headers));
  DWORD dwStatusCode;
  cFile->QueryInfoStatusCode(dwStatusCode);
  if(dwStatusCode == HTTP_STATUS_OK)
  {
    CString szData,szAllData;
    while(cFile->ReadString(szData))
    {
      szAllData += szData;
      szAllData += "\r\n";
    }
    cFile->Close();
    Sess.Close();
    CString name = GetFileName(url,TRUE);
    CFile file(name, CFile::modeCreate
[解决办法]
CFile::modeWrite);
    file.Write(szAllData,szAllData.GetLength());
    file.Close();
  }
  else
  {
    MessageBox("请求失败。。。。");
  }
}

读书人网 >VC/MFC

热点推荐