2

このコードを使用して、URLに対して「GET」リクエストを作成します。

var request = WebRequest.Create(uri) as HttpWebRequest;
request.Method = "GET";
var response = request.GetResponse() as HttpWebResponse;
var status = response.StatusCode; // returns HttpStatusCode.OK

したがって、問題は、URLが別のURLにリダイレクトされたときであり、私はそれを検出できません。例えば;

url is: http://site.com

that redirects to http://www.site.com

しかし、私がそれを要求すると、リダイレクトコードの代わりにhttp://site.comそれを返します。HttpStatusCode.OK何かアイデアはありますか?

4

2 に答える 2

4

AllowAutoRedirectプロパティを使用できます。falseに設定し、リダイレクトを自分で処理します。

于 2012-07-23T18:59:44.080 に答える
0

HttpWebRequest.Addressプロパティを使用します。これは、「リクエスト中に発生したリダイレクトが完了した後のURI」として明示的に定義されています。

ドキュメントに記載されているように、これは同様のHttpWebResponse.ResponseUriの代わりに使用する必要があることに注意してください。

最後にリダイレクトされたResponseUriにアクセスする必要があるアプリケーションは、ResponseUriではなくHttpWebRequest .. :: .. Addressプロパティを使用する必要があります。これは、ResponseUriプロパティを使用するとセキュリティの脆弱性が発生する可能性があるためです。

于 2017-03-21T15:57:04.050 に答える