我编写了一个发送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>”可以知道访问失败了,有什么好的方法吗?谢谢大家:)

解决方案 »

  1.   

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

  2.   

    InternetOpenUrl() 之后即可检测了。
      

  3.   

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

  4.   

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

  5.   

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

  6.   

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

  7.   

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