如何获取网站重定向目标网址(最终用户链接)

Posted

技术标签:

【中文标题】如何获取网站重定向目标网址(最终用户链接)【英文标题】:How to get website redirection target url (end-user-link) 【发布时间】:2012-04-26 15:57:26 【问题描述】:

我有一个将我重定向到另一个网站的 URL。我想从 C# 中的原始 URL 获取目标 URL。有没有办法遵循这些重定向?

【问题讨论】:

你有一个 URL,你用它做什么?使用 WebRequest? 我只需要“最终用户链接”。我尝试将它加载到 webbrowser 控件,但是当我获取当前页面的位置时,它只显示第一个 url,而不是目标。 【参考方案1】:

你可以使用 HttpWebRequest 类

var request = (HttpWebRequest)WebRequest.Create(someUrl);
request.AllowAutoRedirect = false;
var response = (HttpWebResponse) request.GetResponse();
if (response.StatusCode == HttpStatusCode.Found) // Found == 302

    // Do something...
    string newUrl = response.Headers["Location"];

另外,您可以通过设置自动跟随重定向:

request.AllowAutoRedirect = true;
request.MaximumAutomaticRedirections = 4; //number of redirections allowed

相关:How do i check for a 302 response? WebRequest

【讨论】:

response.ResponseUri.OriginalString 给我我需要的东西。 次要 nit:我更喜欢转换为 (HttpWebRequest)(HttpWebResponse),因为如果对象的类型不正确,as 将返回 null,你会得到一个 @987654327 @ 在 下一个 行。最好在包含问题的行中立即获得InvalidCastException

以上是关于如何获取网站重定向目标网址(最终用户链接)的主要内容,如果未能解决你的问题,请参考以下文章

在Chrome中,最终使用带有正则表达式的重定向扩展程序,如何将所有facebook.com网址重定向到mbasic.facebook.com URLS

如何在 webview 中捕获网站重定向

重定向 curl 后获取最终 URL

如何在NGINX中重定向一个网址

node.js 请求获取重定向链

如何重定向(超链接)到我网站上的服务器? (:3000)