httpwebrequest.address vs httpwebresponse.responseuri
-
20-09-2019 - |
문제
이 두 속성의 차이점은 무엇입니까?
상황에 맞추기 위해, 나는 우리의 responseuri! = requesturi 인 경우 리디렉션이 발생하는지 결정하고 있습니다.
URL에 관계없이 리디렉션이 발생합니다 http://adage.com/adages/article?article_id=140560 다른 응답을 제공합니다 (http://adage.com/adages/post.php) 주소보다 (http://adage.com/adages/post?article_id=140560).
ResponseUri가 컨텐츠로 위치 헤더를 가져 와서 주소가 올바른 위치를 유지하는 동안 사용하는 것으로 보입니다.
Requesturi를 httpwebrequest.address와 비교하여 리디렉션을 확인하는 것이 맞습니까?
해결책
예, 비교 request.RequestUri
그리고 request.Address
갈 길입니다. 적어도 단핵증 response.ResponseUri
와 같다 request.Address
.
다른 팁
나는 이것이 오래된 질문이라는 것을 알고 있지만,이 주제를 연구하는 동안 그것을 발견했고 그것이 실제로 올바르게 대답하지 않았다는 것을 알았습니다.
하는 동안 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
요청 설정에 대해 생각 했습니까?
URI 비교도 잘 작동해야하지만 모든 Edge Case가 확실하지 않습니다.