1

これら2つのプロパティの違いは何ですか?

コンテキストに入れると、ResponseUri != RequestUri の場合にリダイレクトが発生するかどうかを判断しています。

URL http://adage.com/adages/article?article_id=140560に関係なくリダイレ​​クトが発生すると、アドレス ( http://adage.com/adages/post.php )とは異なる ResponseUri ( http://adage.com/adages/post.php ) が提供されます。 adage.com/adages/post?article_id=140560 )。

ResponseUri は Content-Location ヘッダーを受け取り、Address が正しい場所を維持している間、それを使用しているようです。

RequestUri を HttpWebRequest.Address と比較してリダイレクトを確認するのは正しいでしょうか?

4

3 に答える 3

2

はい、比較request.RequestUrirequest.Addressて、行く方法です。少なくともMono response.ResponseUriでは。と同じrequest.Addressです。

于 2009-11-19T02:26:13.530 に答える
1

これは古い質問であることは承知していますが、このトピックの調査中に見つけたのですが、実際には正しく答えられていないことに気付きました。

HttpWebRequest.AddressHttpWebResponse.ResponseUri 常に同じである必要がありますが、違いは次のとおりです。

  • HttpWebResponse.Address実際に応答しているページの Uri を返します
  • HttpWebResponse.ResponseUriContent-Locationヘッダーの値を返します(存在する場合)。ドキュメントには、ヘッダーが存在しない場合に何が起こるかは明示されていませんがContent-Location、 と同じ値が使用されると想定されていますAddress

HTTP ヘッダーは偽造される可能性があるため、Microsoftはセキュリティ上の理由からAddress代わりに使用することをお勧めします。ResponseUri

http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.responseuri.aspx

于 2014-03-07T15:28:23.973 に答える
0

request.AllowAutoRedirect=false を設定してから、リダイレクトでリクエストを再発行することを考えましたか?

すべてのエッジケースについてはわかりませんが、Uri 比較も正常に機能するはずです。

于 2009-11-18T15:28:25.840 に答える