Я знаю, что это старый вопрос, но я нашел его во время исследования этой темы и заметил, что на самом деле на него не ответили правильно.
Хотя HttpWebRequest.Address
и HttpWebResponse.ResponseUri
должны всегда быть одинаковыми, вот разница:
HttpWebResponse.Address
вернет Uri страницы, которая действительно отвечает
HttpWebResponse.ResponseUri
вернет значение заголовка Content-Location
(если имеется). Хотя в документации явно не указано, что произойдет, если заголовок Content-Location
отсутствует, предполагается, что он будет использовать то же значение, что и Address
.
Помните, что заголовки HTTP можно подделать, поэтому Microsoft рекомендует использовать Address
вместо ResponseUri
по соображениям безопасности.
http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.responseuri.aspx