WebRequest中にリダイレクトが発生するかどうかを判断する方法はありますか?

StackOverflow https://stackoverflow.com/questions/1014368

質問

Wikipedia.orgをスクレイピングするためにHttpWebRequestを使用しています。多くの場合、統合されたページ上のトピックへのリンクがあるため、正しいページにリダイレクトされます。

たとえば

http://en.wikipedia.org/wiki/Polish_prisoners_of_war_in_Soviet_Union_(after_1939)

正しいトピックにリダイレクトされます

http://en.wikipedia.org/wiki/Polish_prisoners_of_war_in_the_Soviet_Union_(after_1939)

「the」という単語の追加に注意してください。

この時点で、リダイレクトが発生したかどうかを判断する必要があります。誰も私がこれを行う方法を提案できますか?

ありがとう!

更新

技術的にはリダイレクトされたかどうかを判断する方法であるため、以下の回答に回答済みのマークを付けました。私が抱えている問題は、Wikipediaが実際にhttp応答コード3xxでハードリダイレクトを行っていないことです。同じURLで異なるコンテンツを提供するソフトリダイレクトを行っています。別の解決策を見つける必要があります。

役に立ちましたか?

解決

これを試してください:

if(reponse.ResponseUri != request.RequestUri) {
    //You were redirected
}

他のヒント

" AllowAutoRedirects " HttpWebRequestオブジェクト。これをオフにすると、リダイレクトを自分で追跡できます。

HttpWebResponseを確認することもできます。 ResponseUri

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

同様の HttpWebResponse.ResponseUri 、ドキュメントに記載されているとおり:

  

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top