WinINet:如何防止HttpSendRequest遵循重定向(30x状态代码)?

时间:2009-02-13 17:12:50

标签: wininet

当我使用HttpSendRequest API的方法WinINet发出HTTP请求,并且响应发送“302: Moved Temporarily”时,WinINet API会自动遵循重定向指令并创建一个新的请求。

那么,如何防止HttpSendRequest遵循重定向(30x状态代码)?

我不想发出两个请求......我不想通过它的标题中的状态码302获得第一个响应。

4 个答案:

答案 0 :(得分:2)

我找到了一个标记INTERNET_FLAG_NO_AUTO_REDIRECT,我必须将其传递给HttpOpenRequest

但是,它没有用......

答案 1 :(得分:0)

如果您能够使用WinHTTP(link),则可以防止重定向。

答案 2 :(得分:0)

尝试在INTERNET_FLAG_NO_AUTO_REDIRECT的调用中使用HttpSendRequest。听起来你正试图从HttpOpenRequest使用它。

我将此标记与InternetOpenUrl一起使用,并且在该调用中正常工作。

答案 3 :(得分:0)

似乎WinInet行为在很大程度上取决于lpszAgent函数调用中指定的InternetOpen。当您通过"Mozilla/5.0 (compatible)"时,所有重定向都会被忽略,当您使用InternetReadFile阅读回复时,您将获得RAW HTML结果。

另一方面,如果需要“重定向”输出,则必须在Agent参数中指定应用程序名称,例如"ConEmu Update"