关于http请求的问题,如何得到返回的错误码,比如404?
我编写了一个发送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中列出的错误值,这该怎么处理这样的情况




