2

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

那么,如何防止 HttpSendRequest 跟随重定向(30x 状态码)?

我不想发出两个请求……我不想得到它在标题中带有状态码 302 的第一个响应。

4

4 回答 4

2

我找到了INTERNET_FLAG_NO_AUTO_REDIRECT必须传递给的标志HttpOpenRequest

但是,它不起作用......

于 2009-02-13T17:20:02.200 回答
0

如果您能够改用 WinHTTP(链接),则可以防止重定向。

于 2009-05-15T15:37:02.837 回答
0

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

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

于 2009-05-15T15:59:12.657 回答
0

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

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

于 2013-12-29T15:10:07.913 回答