2009-07-10 3 views
1

단축 URL의 최종 목적지를 결정하는 가장 좋은 방법을 찾고 있습니다. 예를 들어 http://tinyurl.com은 eBay 경매로 리디렉션됩니다. 나는 eBay 경매를위한 URL을 얻으려고 노력하고있다. .NET 내에서이 작업을 수행하려고하므로 중복되지 않도록 여러 URL을 비교할 수 있습니다.단축 URL의 최종 목적지를 결정하십시오.

TIA

+0

MVC와 관련이 없습니다 –

답변

7

나는 대답은 이미 배달 된 작동하는지 확인하기 위해 코드를 작성하는 분을 보냈다, 그러나 나는 어쨌든 코드를 게시하는 동안 :

private static string GetRealUrl(string url) 
{ 
    WebRequest request = WebRequest.Create(url); 
    request.Method = WebRequestMethods.Http.Head; 
    WebResponse response = request.GetResponse(); 
    return response.ResponseUri.ToString(); 
} 

이 한 짧은 URL 서비스는 일반을처럼 작동합니다 리디렉션.

+0

코드를 보내 주셔서 감사합니다! –

0

실제로 티니 URL에 대한 URL 마지막에 /info를 추가 할 수 있습니다, 링크를 따라하고 싶지 않은 가정 :

http://tinyurl.com/unicycles/info 

그것은 당신에게 페이지를 보여주는 것을 제공 tinyurl 링크는 xpath 또는 유사한 것을 사용하여 쉽게 파싱 할 수 있다고 가정합니다.

대부분의 다른 URL 단축 서비스는 비슷한 기능을 가지고 있지만 모두 다르게 작동합니다.

+0

예를 들어 TinyURL을 추가했습니다. 많은 회사들이 단두대도 사용합니다. ie : espn.com/streak는 espn.go.com/streak /로 리디렉션됩니다. –

+0

@ Jason : 아, 알았습니다. – RichieHindle

1

한 가지 방법은 URL을 읽고 결과 코드를 얻는 것입니다. 301 (영구적 인 리디렉션)이라면 어디로 데려가는 지 확인하십시오. 200 (OK)에이를 때까지 계속하십시오. tinyurl을 사용할 때 200에 도달 할 때까지 여러 301을 통과 할 수 있습니다.

+0

제안 해 주셔서 감사합니다! –

5

HttpWebRequest 인스턴스를 사용하여 URL에 HEAD 요청을 발행해야합니다. 반환 된 HttpWebResponse에서 ResponseUri를 확인합니다.

HttpWebRequest 인스턴스에서 AllowAutoRedirect가 true로 설정되어 있는지 확인하십시오. 기본값은 true입니다.