2009-06-18 2 views
0

나는 HttpWebRequest를 사용하여 Wikipedia.org를 긁어 모으고 있습니다. 여러 번 페이지의 주제에 대한 링크가 통합되어 있으므로 올바른 페이지로 리디렉션됩니다. WebRequest 중에 리디렉션 발생자를 확인하는 방법이 있습니까?

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

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

주의 말씀 "은"의 추가이다 올바른 주제로 리디렉션 예를

에 대한

.

이 시점에서 리디렉션이 발생했는지 여부를 확인해야합니다. 아무도 내가 이것을 할 수있는 방법을 제안 할 수 있습니까?

감사합니다.

UPDATE

나는 기술적으로 그게 당신이 리디렉션 된 경우 말할 방법이기 때문에 대답으로 아래의 응답을 표시했다. 내가 겪고있는 문제는 Wikipedia가 http 응답 코드 3xx를 사용하여 하드 리디렉션을 실제로 수행하고 있지 않다는 것입니다. 그들은 같은 방향으로 다른 콘텐츠를 제공하는 부드러운 방향 전환을하고 있습니다. 나는 다른 해결책을 찾아야 할 것이다.

답변

1

이 시도 :

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

HttpWebRequest 개체에는 "AllowAutoRedirects"이라는 속성이 있습니다. 이 기능을 끄면 리디렉션을 직접 수행 할 수 있습니다.

HttpWebResponse를 확인해 볼 수도 있습니다. ResponseUri.

0

이가 대신 사용하는 것을

참고 "요청 중에 일어날 모든 재 지정을 완료 한 후 URI"명시 적으로 정의 된 HttpWebRequest.Address 속성을 사용하여 유사한 HttpWebResponse.ResponseUri는 그 문서가 말한대로 : 마지막 리디렉션 ResponseUri 소에 접근 할 필요가

응용 프로그램 ResponseUri 속성을 사용하면 보안 취약점이 열려있을 수 있으므로 ResponseUri 대신 HttpWebRequest..::..Address 속성을 사용하십시오.

관련 문제