为什么我的CHttpFile对象的QueryInfo函数返回的状态值为0?

gfz 2012-09-01 09:30:55
为啥dwStatus等于0 ???

CInternetSession session("sess",0);
CHttpConnection* connect = session.GetHttpConnection(
sURL
,INTERNET_FLAG_NO_AUTO_REDIRECT
,80,"Rainny","Rainny");

CString strServerName;
CString strObject;
INTERNET_PORT nPort;
DWORD dwServiceType;


if (!AfxParseURL(sURL, dwServiceType, strServerName, strObject, nPort) ||
dwServiceType != INTERNET_SERVICE_HTTP)
{
AfxMessageBox("AfxParseURL Error");
return;
}


CHttpFile* outfile;
outfile = connect->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT);
//pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags);

DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = outfile->QueryInfo(
HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
&dwStatus, &dwBuffLen);
if( bSuccess && dwStatus >= 200 && dwStatus < 300)//根据HTTP协议,如果存在此文件并且一切正常,返回值就会在200-300之间。
{
char buffer[2048 + 1];
memset(buffer, 0, 2049);
int nReadCount = 0;
while((nReadCount = outfile->Read(buffer, 2048)) > 0)
{//每次读2048个字节,一直读,直到没数据。
buffer[nReadCount] = '\0';
//strSentence += buffer;
memset(buffer, 0, 2049);
}
}

...全文
133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gfz 2012-09-03
  • 打赏
  • 举报
回复
有人知道么?
Gloveing 2012-09-02
  • 打赏
  • 举报
回复
看起来outfile就出错了
而且像你这种认证,没做过呢,不知道行不行
gfz 2012-09-02
  • 打赏
  • 举报
回复
网站对我的Http请求需要验证,如下图:
gfz 2012-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
设断点检查一下:
connect 和outfile的值
[/Quote]


Gloveing 2012-09-01
  • 打赏
  • 举报
回复
设断点检查一下:
connect 和outfile的值

18,356

社区成员

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

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