【发布时间】:2012-12-20 11:10:13
【问题描述】:
我想更改我的网络浏览器控件的用户代理。我可以这样做:
webbrowserTest.Navigate(new Uri("http://mywebsite.com"), null, "User-Agent: myuseragent");
问题是用户代理只对一个请求有效,对子请求或重定向无效。如何永久更改此用户代理?
【问题讨论】:
我想更改我的网络浏览器控件的用户代理。我可以这样做:
webbrowserTest.Navigate(new Uri("http://mywebsite.com"), null, "User-Agent: myuseragent");
问题是用户代理只对一个请求有效,对子请求或重定向无效。如何永久更改此用户代理?
【问题讨论】:
因为它是密封类,所以我认为没有什么方法可以拦截 HttpRequest 的创建,我通常会避免这种想法,因为您以后可以有其他不需要 UserAgent/其他标头的请求。这里最简单的做法可能是在单独的静态类中创建扩展方法,例如:
public static class WebBrowserExtensions
{
public static void NavigateWithUserAgent(this WebBrowser webBrowser, Uri uri)
{
webBrowser.Navigate(uri, null, "User-Agent: myuseragent");
}
}
然后只需调用:
new WebBrowser().NavigateWithUserAgent(new Uri("http://mywebsite.com"));
希望这会有所帮助。
【讨论】:
webBrowser.Navigate() 如何以及为什么对他不起作用。