HttpWebRequest.Address と HttpWebResponse.ResponseUri
-
20-09-2019 - |
質問
これら 2 つのプロパティの違いは何ですか?
文脈を説明すると、ResponseUri != RequestUri の場合にリダイレクトが発生するかどうかを判断しています。
URLに関係なくリダイレクトが発生する間 http://adage.com/adages/article?article_id=140560 別の ResponseUri (http://adage.com/adages/post.php) アドレス (http://adage.com/adages/post?article_id=140560).
ResponseUri は Content-Location ヘッダーを取得し、Address が正しい場所を維持している間にそれを使用しているようです。
RequestUri と HttpWebRequest.Address を比較してリダイレクトを確認するのは正しいでしょうか?
解決
はい、request.RequestUri
とrequest.Address
を比較すると、移動するための方法です。少なくともモノラルするでresponse.ResponseUri
はrequest.Address
と同じである。
他のヒント
これが古い質問であることは承知していますが、このトピックを調査中に見つけたところ、実際には正しく答えられていないことに気付きました。
その間 HttpWebRequest.Address
そして HttpWebResponse.ResponseUri
すべき 常に同じですが、違いは次のとおりです。
HttpWebResponse.Address
実際に応答しているページの URI を返しますHttpWebResponse.ResponseUri
の値を返しますContent-Location
ヘッダー (存在する場合)。ドキュメントには、次の場合に何が起こるかについては明示的に記載されていません。Content-Location
ヘッダーが存在しないため、次と同じ値が使用されると想定されます。Address
.
HTTP ヘッダーは偽造される可能性があるため、Microsoft では次の使用を推奨しています。 Address
の代わりに ResponseUri
セキュリティ上の理由から。
http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.responseuri.aspx
あなたは偽= request.AllowAutoRedirectを設定して、リダイレクトに要求を再発行について考えたことはありますか?
私はすべてのエッジ例を確認していないが、ウリの比較も、正常に動作する必要があります。