WebRequest 동안 리디렉션이 발생하는지 확인하는 방법이 있습니까?
-
06-07-2019 - |
문제
httpwebrequest를 사용하여 wikipedia.org를 긁어 모으고 있습니다. 많은 경우 통합 된 페이지의 주제에 대한 링크가있어 올바른 페이지로 리디렉션됩니다.
예를 들어
http://en.wikipedia.org/wiki/polish_prisoners_war_in_soviet_union_(after_1939)
올바른 주제로 리디렉션합니다
http://en.wikipedia.org/wiki/polish_prisoners_war_in_the_soviet_union_ (after_1939)
"The"라는 단어가 추가되었습니다.
이 시점에서 리디렉션이 발생했는지 여부를 결정해야합니다. 누구든지 내가 어떻게 할 수 있는지 제안 할 수 있습니까?
감사!
업데이트
기술적으로는 당신이 당신이 당신이 리디렉션되었는지 말하는 방식이기 때문에 아래에 응답을 표시했습니다. 내가 가진 문제는 Wikipedia가 실제로하지 않는다는 것입니다. 하드 리디렉션 HTTP 응답 코드 3xx. 그들은하는 중이 야 소프트 리디렉션 동일한 URL에서 다른 콘텐츠를 제공합니다. 다른 해결책을 찾아야합니다.
해결책
이 시도:
if(reponse.ResponseUri != request.RequestUri) {
//You were redirected
}
다른 팁
사용 httpwebrequest.address 명시 적으로 명시 적으로 정의되는 속성 "요청 중에 발생하는 리디렉션 후 URI"로 정의됩니다.
비슷한 대신 사용해야합니다. httpwebresponse.responseuri, 문서가 말한 것처럼 :
마지막으로 리디렉션 된 응답에 액세스 해야하는 응용 프로그램은 다음을 사용해야합니다. httpwebrequest .. :: .. 주소 ResponseUri 속성을 사용하면 보안 취약점을 개방 할 수 있기 때문에 Responseuri보다는 속성이 있습니다.