我有一个包含重定向到最终目标网址的网址的数据库。我需要解析最终目标网址。
301/302标题的某些重定向可以很容易地解决:
WebRequest request = WebRequest.Create(destination);
WebResponse response = request.GetResponse();
Console.WriteLine(response.ResponseUri);
然而,大多数都是通过javascript,元重定向或可能的其他一些客户端方式重定向的。 由于原始URL来自各种来源,我无法解析HTML以查找特定的javascript。
我认为唯一的方法是使用原始URL从控制台应用程序中启动Web浏览器,等待几秒钟,然后重定向,然后查询最终的URL。任何人都可以建议可以使用哪些内置的.NET程序集/ COM对象,或者是一个不错的库,也许还有一些示例代码。
也对替代解决方案感兴趣。非常感谢。
答案 0 :(得分:0)
我想不出任何通用的方法来识别JavaScript重定向而不是启动某种类型的Web浏览器来解释JavaScript。也就是说,有一个System.Windows.Forms.WebBrowser
控件,您可以将其用于此目的而无需委托给外部应用程序。当然,您可以在隐藏控件时与控件进行交互。它有各种可以附加的事件,以便检测何时发生重定向。