更改WebBrowser控件的用户代理

更改WebBrowser控件的用户代理,第1张

更改WebBrowser控件用户代理

我不确定是否应该从网站复制/粘贴,但我想在这里留下答案,而不是链接。如果有人可以在评论中澄清,我将有义务。

基本上,您必须扩展WebBrowser类。

public class ExtendedWebBrowser : WebBrowser{    bool renavigating = false;    public string UserAgent { get; set; }    public ExtendedWebBrowser()    {        documentCompleted += SetupBrowser;        //this will cause SetupBrowser to run (we need a document object)        Navigate("about:blank");    }    void SetupBrowser(object sender, WebBrowserdocumentCompletedEventArgs e)    {        documentCompleted -= SetupBrowser;        SHDocVw.WebBrowser xBrowser = (SHDocVw.WebBrowser)ActiveXInstance;        xBrowser.BeforeNavigate2 += BeforeNavigate;        documentCompleted += PageLoaded;    }    void PageLoaded(object sender, WebBrowserdocumentCompletedEventArgs e)    {    }    void BeforeNavigate(object pDisp, ref object url, ref object flags, ref object targetframeName,        ref object postData, ref object headers, ref bool cancel)    {        if (!string.IsNullOrEmpty(UserAgent))        { if (!renavigating) {     headers += string.Format("User-Agent: {0}rn", UserAgent);     renavigating = true;     cancel = true;     Navigate((string)url, (string)targetframeName, (byte[])postData, (string)headers); } else {     renavigating = false; }        }    }}

注意:要使用上述方法,您需要将COM引用添加到“ Microsoft Internet控件”。

他也提到了您的方法,并指出WebBrowser控件似乎在缓存此用户代理字符串,因此,如果不重新启动该进程,它将不会更改用户代理。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5567369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存