读书人

怎么获取HTTP 302重定向的header信息

发布时间: 2012-06-13 12:30:18 作者: rapoo

如何获取HTTP 302重定向的header信息?
用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) ;


但以上两种方法都试过,无效,求教。

[解决办法]
如果只是想获取到被重定向到哪去,而不需要访问被重定向后的页
那么就在调用HttpOpenRequest时,dwFlags参数加上INTERNET_FLAG_NO_AUTO_REDIRECT
然后用HttpQueryInfo去获取信息


如果又要知道重定向去哪,又要访问最终目标页,那就要在CallBack里获取了

当InternetStatusCallback的dwInternetStatus为INTERNET_STATUS_REDIRECT,就是重定向
[解决办法]
使用location标签,就可以取得

读书人网 >.NET

热点推荐