首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EO.WebBrowser设置referer C#

EO.WebBrowser设置referer C#
EN

Stack Overflow用户
提问于 2015-04-20 15:41:26
回答 1查看 1.4K关注 0票数 0

正在尝试找到一种在EO.WebBrowser中设置引用的方法。我看到可以使用:webView1.CustomUserAgent更改用户代理,但看起来没有用于referer的方法。有没有其他的方法可以用javascript或者其他方式来实现呢?

我可以使用以下代码“捕获”beforesendheaders事件:webView1.BeforeSendHeaders += new EO.WebBrowser.RequestEventHandler(webView1_BeforeSendHeaders);,但帮助不大。

我在做一个项目,我从awesomium开始,但是...看起来有些网站没有加载,只是显示了一个空白屏幕。我已经设法改变了awesomium中的referer和user agent,但我真的需要这两者才能继续前进。

如有任何建议,欢迎光临。

EN

回答 1

Stack Overflow用户

发布于 2015-04-20 15:53:32

看起来我是用javascript自己找到的。代码如下:

代码语言:javascript
复制
public partial class Form1 : Form
{
    private const string JS_referer_function = "function navigateToUrl(url) {var f = document.createElement(\"FORM\"); f.action = url; var indexQM = url.indexOf(\"?\"); if (indexQM>=0) { var params = url.substring(indexQM+1).split(\"&\"); for (var i=0; i<params.length; i++) { var keyValuePair = params[i].split(\"=\"); var input = document.createElement(\"INPUT\"); input.type=\"hidden\"; input.name  = keyValuePair[0]; input.value = keyValuePair[1]; f.appendChild(input); } } document.body.appendChild(f); f.submit(); }";
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        webView1.LoadUrlAndWait("http://referer.com");
        webView1.EvalScript(JS_referer_function);
        webView1.EvalScript("navigateToUrl(\"http://192.168.0.108/referer\");");
    }
}

它基本上是先加载http://referer.com,然后使用javascript,使用referer http://referer.com转到http://192.168.0.108/referer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29741900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档