2

WinINet APIのメソッドHttpSendRequestを使用してHTTP要求を行い、応答が " "を送信すると、WinINet APIは自動的にリダイレクト命令に従い、新しい要求を行います。302: Moved Temporarily

では、HttpSendRequestがリダイレクト(30xステータスコード)に従うのを防ぐにはどうすればよいですか?

2つのリクエストを行いたくありません...ヘッダーにステータスコード302が含まれる最初のレスポンスを取得したくありません。

4

4 に答える 4

2

INTERNET_FLAG_NO_AUTO_REDIRECTに渡さなければならないフラグを見つけましたHttpOpenRequest

しかし、それは機能していません...。

于 2009-02-13T17:20:02.200 に答える
0

INTERNET_FLAG_NO_AUTO_REDIRECTの呼び出しで使用してみてくださいHttpSendRequest。から使用しようとしているようですHttpOpenRequest

このフラグをInternetOpenUrl。と一緒に使用すると、その呼び出しで正しく機能します。

于 2009-05-15T15:59:12.657 に答える
0

代わりにWinHTTPを使用できる場合は、リダイレクトを防ぐことができます(link)。

于 2009-05-15T15:37:02.837 に答える
0

WinInet の動作は、関数呼び出しでのlpszAgent指定に大きく依存しているようです。InternetOpen渡す"Mozilla/5.0 (compatible)"と、すべてのリダイレクトが無視され、 で応答を読み取るときに生の HTML 結果が得られますInternetReadFile

一方、「リダイレクトされた」出力が必要な場合は、Agent 引数でアプリケーション名を指定する必要があります (例: "ConEmu Update".

于 2013-12-29T15:10:07.913 に答える