1

我有一个充满 URL 的数据库,这些 URL 重定向到最终目标 URL。我需要解析最终目标 URL。

一些通过 301/302 标头进行的重定向,可以很容易地解决,如下所示:

WebRequest request = WebRequest.Create(destination);
WebResponse response = request.GetResponse();
Console.WriteLine(response.ResponseUri);

然而,大多数都是通过 javascript、元重定向或其他一些客户端方式重定向的。由于原始 URL 来自多种来源,我无法解析 HTML 以查找特定的 javascript。

我认为唯一的方法是使用原始 URL 从控制台应用程序中启动 Web 浏览器,等待几秒钟以使其重定向,然后查询最终 URL。任何人都可以建议可以使用哪些内置的 .NET 程序集/COM 对象,或者一个不错的库,也许还有一些示例代码。

也对替代解决方案感兴趣。非常感谢。

4

1 回答 1

0

除了启动某种网络浏览器来解释 JavaScript之外,我想不出任何通用的方法来识别 JavaScript 重定向。也就是说,有一个System.Windows.Forms.WebBrowser控件可以用于此目的,而无需委托给外部应用程序。当然,您仍然可以在控件隐藏时与其交互。它具有您可以附加的各种事件,以检测何时发生重定向。

于 2013-11-12T23:43:22.467 回答