Gibt es eine Möglichkeit, um zu bestimmen, ob eine Umleitung während einer WebRequest auftritt?

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

Frage

Ich verwende HttpWebRequest Wikipedia.org zu kratzen. Eine Menge Zeit wird es Links zu Themen auf einer Seite, die konsolidiert wurde, und deshalb sie leiten Sie auf die richtige Seite.

zum Beispiel

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

leitet Sie auf das richtige Thema, das ist

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

Beachten Sie die Hinzufügung des Wortes "the".

Ich muß an dieser Stelle, um zu bestimmen, ob eine Umleitung passiert ist. Kann jemand empfehlen, wie ich dies tun könnte?

Danke!

UPDATE

I markiert die Antwort unten als beantwortet, weil technisch das ist, wie Sie sagen, wenn Sie umgeleitet worden sind. Das Problem, das ich habe, ist die Wikipedia ist nicht wirklich ein tun hart umleiten mit http Antwortcodes 3xx. Sie tun weich Umleitungen , die unterschiedliche Inhalte unter der gleichen URL serviert. Ich werde eine andere Lösung finden haben.

War es hilfreich?

Lösung

Versuchen Sie folgendes:

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

Andere Tipps

Es gibt eine Eigenschaft namens „ AllowAutoRedirects “auf dem HttpWebRequest-Objekt. Wenn Sie diese Funktion deaktivieren, können Sie folgen der Umleitungen selbst.

Sie könnten auch versuchen HttpWebResponse überprüfen. ResponseUri .

Mit dem HttpWebRequest.Address Eigenschaft, die als „die URI nach irgendwelchen Umleitungen, die während der Anforderung passieren vollständig sind“ explizit definiert wird

Beachten Sie, dass dies sollte anstelle der sehr ähnlichen HttpWebResponse.ResponseUri , wie seine Dokumentation sagt:

  

Anwendungen, die die letzte umgeleiteten ResponseUri zugreifen müssen   sollte die HttpWebRequest .. :: .. Adresse Eigenschaft statt   ResponseUri, da die Verwendung von ResponseUri Eigenschaft kann öffnen Sicherheit   Schwachstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top