确定缩短的URL的最终目的地

时间:2009-07-10 16:57:08

标签: c# asp.net class

我正在尝试找到最佳方式(在代码中)来确定缩短网址的最终目的地。例如,http://tinyurl.com重定向到eBay拍卖。我正在尝试获取eBay拍卖的网址。我正在尝试从.NET中执行此操作,因此我可以比较多个URL以确保没有重复。

TIA

4 个答案:

答案 0 :(得分: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();
}

只要短网址服务进行常规重定向,这将有效。

答案 1 :(得分:5)

您应该使用HttpWebRequest实例向URL发出HEAD请求。在返回的HttpWebResponse中,检查ResponseUri。

确保在HttpWebRequest实例上将AllowAutoRedirect设置为true(默认情况下为true)。

答案 2 :(得分:1)

一种方法是读取URL并从中获取结果代码。如果它是301(永久重定向),那么请按照它带你去的地方。继续这样做,直到达到200(OK)。当使用tinyurl时,你可能会经历几次301直到达到200。

答案 3 :(得分:0)

假设您不想真正关注该链接,对于TinyURL,您可以将/info附加到网址的末尾:

http://tinyurl.com/unicycles/info

它会显示一个页面,显示tinyurl链接到的位置,我认为使用xpath或类似方法很容易解析。

大多数其他网址缩短服务都有类似的功能,但它们的工作方式各不相同。

相关问题