C# 确定缩短的URL的最终目标

C# 确定缩短的URL的最终目标,c#,asp.net,class,C#,Asp.net,Class,我试图找到(在代码中)确定缩短URL的最终目的地的最佳方法。例如,重定向到易趣拍卖。我正在尝试获取eBay拍卖的URL。我正在尝试从.NET中执行此操作,以便可以比较多个URL以确保没有重复的URL TIA假设您不想实际跟随链接,对于TinyURL,您可以将/info附加到url的末尾: http://tinyurl.com/unicycles/info 它提供了一个页面,显示tinyurl链接到的位置,我认为使用xpath或类似工具很容易解析 大多数其他URL缩短服务都有类似的功能,但它们的

我试图找到(在代码中)确定缩短URL的最终目的地的最佳方法。例如,重定向到易趣拍卖。我正在尝试获取eBay拍卖的URL。我正在尝试从.NET中执行此操作,以便可以比较多个URL以确保没有重复的URL


TIA

假设您不想实际跟随链接,对于TinyURL,您可以将
/info
附加到url的末尾:

http://tinyurl.com/unicycles/info
它提供了一个页面,显示tinyurl链接到的位置,我认为使用xpath或类似工具很容易解析


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

假设您不想实际跟随链接,对于TinyURL,您可以在URL末尾附加
/info

http://tinyurl.com/unicycles/info
它提供了一个页面,显示tinyurl链接到的位置,我认为使用xpath或类似工具很容易解析


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

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

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

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


只需确保HttpWebRequest实例上的AllowAutoRedirect设置为true(默认为true)。

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


只需确保HttpWebRequest实例上的AllowAutoRedirect设置为true(默认情况下为true)。

我花了一分钟编写代码,以确保它工作正常,但我还是发布了代码:

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服务执行常规重定向,这项功能就可以正常工作。

虽然我花了一分钟编写代码以确保它工作,但答案已经提交,但我还是发布了代码:

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服务执行常规重定向,这就可以工作。

我刚刚添加了TinyURL作为示例。许多公司也使用短网址。ie:espn.com/streak重定向到espn.go.com/streak/…我刚刚添加了TinyURL作为示例。许多公司也使用短网址。ie:espn.com/streak重定向到espn.go.com/streak/。。。。