用httpsendrequest 发送HTTP包时,如遇到网站响应是HTTP302,不能获取到302头信息和Location地址,只能获取到重定向后的结果200和重写向后的网页内容。请问,如何获取302的头信息?翻到以前有人发帖问过类似问题,有人回答只要HttpQueryInfo(...,HTTP_QUERY_LOCATION,...)就行了或使用异步的请求就可以了m_session = ::InternetOpen (agent_name,  
INTERNET_OPEN_TYPE_PRECONFIG, // use registry settings.  
NULL, // proxy name. NULL indicates use default.
NULL, // list of local servers. NULL indicates default.  
INTERNET_FLAG_ASYNC) ;
但以上两种方法都试过,无效,求教。

解决方案 »

  1.   

    如果只是想获取到被重定向到哪去,而不需要访问被重定向后的页
    那么就在调用HttpOpenRequest时,dwFlags参数加上INTERNET_FLAG_NO_AUTO_REDIRECT
    然后用HttpQueryInfo去获取信息
    如果又要知道重定向去哪,又要访问最终目标页,那就要在CallBack里获取了当InternetStatusCallback的dwInternetStatus为INTERNET_STATUS_REDIRECT,就是重定向
      

  2.   

    是第二种情况问题就是Callback中得到的 dwInternetStatus 的值不是INTERNET_STATUS_REDIRECT
      

  3.   

    使用location标签,就可以取得
      

  4.   

    提出这个问题,就是因为从location 这里取不到,location 也是从HttpQueryInfo去获取的返回信息里提取的值,现在是返回信息里没有。