栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更改WebBrowser控件的用户代理

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更改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控件似乎在缓存此用户代理字符串,因此,如果不重新启动该进程,它将不会更改用户代理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576144.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号