CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于http请求的问题,如何得到返回的错误码,比如404?

楼主pleasehelpme(革命尚未成功,同志仍需努力)2005-06-04 09:44:56 在 VC/MFC / 基础类 提问

我编写了一个发送http请求的测试程序,分别用了下面几个函数。  
  InternetOpen  
  InternetOpenUrl  
  InternetReadFile  
  用IE访问一个不存在的页面时,比如:“http://www.sina.com.cn/abc”,会得到一个404错误。  
  但用我的测试程序得到以下内容:  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   3.2   Final//EN">  
  <html>  
   
  <head>  
  <style>  
  a:link {font:9pt/12pt   宋体,   MS   Song;   color:red}  
  a:visited {font:9pt/12pt   宋体,   MS   Song;   color:#4e4e4e}  
  </style>  
  <meta   HTTP-EQUIV="Content-Type"   Content="text-html;   charset=gb2312">  
  <title>HTTP   404   未找到</title>  
  </head>  
  <script>    
  。。。。。省略。。。。。  
   
  从“<title>HTTP   404   未找到</title>”可以知道访问失败了,有什么好的方法吗?谢谢大家:) 问题点数:200、回复次数:9Top

1 楼ahzhuo(好好编程,天天向上)回复于 2005-06-04 09:54:14 得分 100

HttpQueryInfo  
  This   function   queries   for   information   about   an   HTTP   request.  
   
  BOOL   WINAPI   HttpQueryInfo(  
  HINTERNET   hRequest,    
  DWORD   dwInfoLevel,    
  LPVOID   lpBuffer,    
  LPDWORD   lpdwBufferLength,    
  LPDWORD   lpdwIndex);  
  Top

2 楼ahzhuo(好好编程,天天向上)回复于 2005-06-04 09:55:04 得分 0

InternetOpenUrl()   之后即可检测了。  
  Top

3 楼ahzhuo(好好编程,天天向上)回复于 2005-06-04 09:56:24 得分 0

HttpQueryInfo(hRequest,   HTTP_QUERY_STATUS_CODE,   &dwRetCode,   sizeof(dwRetCode),   0);  
  Top

4 楼pleasehelpme(革命尚未成功,同志仍需努力)回复于 2005-06-04 10:27:11 得分 0

谢谢   我试试看Top

5 楼pleasehelpme(革命尚未成功,同志仍需努力)回复于 2005-06-04 10:42:47 得分 0

是这么用吗?  
  DWORD   dwRetCode   =   0;  
  DWORD   len   =   sizeof(dwRetCode);  
  HttpQueryInfo(m_hRequest,   HTTP_QUERY_STATUS_CODE,   &dwRetCode,   &len,   0);  
   
  怎么dwRetCode返回的不是404,而是3420212?  
  Top

6 楼xift_2008(☆冲浪者☆)回复于 2005-06-04 10:52:12 得分 30

感觉好像不是这么使用的吧  
  但HTTP方面没有太多接触,学习学习...Top

7 楼pleasehelpme(革命尚未成功,同志仍需努力)回复于 2005-06-04 11:05:30 得分 0

解决了。  
  char   retBuf[10]   =   {   0   };  
  DWORD   bufLen   =   sizeof(retBuf);  
  HttpQueryInfo(m_hRequest,   HTTP_QUERY_STATUS_CODE,   retBuf,   &bufLen   ,   0);  
  DWORD   dwRtn   =   (DWORD)atol(retBuf);  
  Top

8 楼kingzai(stevenzhu)回复于 2005-06-04 11:12:45 得分 70

Discover   WEB.   HTTP   GET-POST   Utility  
  www.codeproject.com/internet/httpget-post.aspTop

9 楼ahzhuo(好好编程,天天向上)回复于 2005-06-04 16:20:09 得分 0

哦,对了,我忘了,它是返回字符串型的,:)  
  Top

相关问题

  • DeviceIoControl 返回错误码1,为什么?
  • 为什么QueryInterFace总是返回错误码0x80070057?
  • CoCreateInstance返回的错误码为800401F0是代表什么错误?
  • DhcpNotifyConfigChange这个函数总是返回错误码啊!
  • 怎么把err.LastDllError返回的错误码转成字符串信息?
  • oracle 错误码2134
  • 在VB中如何得到SQL SERVER返回的错误码(类似C中的sqlca.sqlcode的东西)?
  • 2000里 事件查看器里 不能收集到 FTP 性能统计资料。 服务返回的错误码是数据
  • 用VB6操作WORD文档,关闭后再次打开系统会返回错误码462。请问这个问题应该怎么解决?
  • connect的返回错误码不是只有msdn中列出的错误值,这该怎么处理这样的情况

关键词

  • code
  • dwretcode
  • httpqueryinfo
  • hrequest
  • retbuf
  • 返回
  • 得到
  • query
  • dword
  • status

得分解答快速导航

  • 帖主:pleasehelpme
  • ahzhuo
  • xift_2008
  • kingzai

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo