Question

Quelle est la différence entre ces deux propriétés?

Pour mettre en contexte, je déterminer si une redirection se produit si notre ResponseUri! = RequestUri.

Alors qu'une redirection se produit quel que soit le http://adage.com/adages/article? article_id = 140560 fournira un autre ResponseUri ( http://adage.com/adages/post .php ) que l'adresse ( http://adage.com/adages/post ? article_id = 140560 ).

Il semble que le ResponseUri prend l'en-tête Content-Lieu et l'utilise alors l'adresse maintient l'emplacement correct.

Serait-il correct de comparer le RequestUri au HttpWebRequest.Address pour vérifier réoriente?

Était-ce utile?

La solution

Oui, en comparant request.RequestUri et request.Address est le chemin à parcourir. Au moins dans Mono response.ResponseUri est le même que request.Address.

Autres conseils

Je sais que c'est une vieille question, mais je l'ai trouvé en faisant des recherches à ce sujet et a remarqué qu'il n'a pas été fait correctement répondu.

Alors que HttpWebRequest.Address et HttpWebResponse.ResponseUri devrait toujours le même, voici la différence:

  • HttpWebResponse.Address retourne le Uri de la page fait répondre
  • HttpWebResponse.ResponseUri retourne la valeur de l'en-tête de Content-Location (le cas échéant). Bien que la documentation ne dit pas explicitement ce qui se passe si l'en-tête de Content-Location n'est pas présent, on suppose qu'il utilisera la même valeur que Address.

Rappelez-têtes HTTP peuvent être falsifiés, de sorte que Microsoft recommande d'utiliser Address au lieu de ResponseUri pour des raisons de sécurité.

http://msdn.microsoft.com/ fr-fr / bibliothèque / system.net.httpwebresponse.responseuri.aspx

Avez-vous pensé à mettre request.AllowAutoRedirect = false et réémission la demande sur une redirection?

La comparaison Uri devrait également très bien, même si je ne suis pas sûr de tous les cas de pointe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top