如何获取网页浏览器的用户代理?(.net).
本文关键字:用户代理 net 浏览器 网页 何获取 获取 网页浏览 | 更新日期: 2023-09-27 18:35:55
我需要获取 WebBrowser WinForms 控件(.net 2 或 3.5)的当前(或默认)用户代理字符串。
我找到了如何将其更改为我自己的字符串(更改 WebBrowser 控件的用户代理),但我更喜欢使用默认字符串。
简而言之,我使用WebBrowser允许用户登录站点。然后,我使用会话cookie并将其用于我的JSON HttpWebRequest,并希望使用相同的用户代理来防止出现问题。
您可以插入一些javascript来获取用户代理并将其传递回WinForms应用程序。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigated += webBrowser1_Navigated;
webBrowser1.Navigate("www.google.com");
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
var scriptingObject = new UserAgentScriptingObject();
webBrowser1.ObjectForScripting = scriptingObject;
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
scriptEl.SetAttribute("text", "function myscript() { window.external.SetUserAgent(navigator.userAgent); }");
webBrowser1.Document.GetElementsByTagName("head")[0].AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("myscript");
}
}
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class UserAgentScriptingObject
{
public void SetUserAgent(string userAgent)
{
MessageBox.Show(userAgent);
}
}