2015-07-04 42 views
2

我试图找出一种方法将自定义http头添加到通过geckoFX所做的所有请求中。我尝试添加使用将http头添加到GeckoFx的所有请求中

GeckoMIMEInputStream strea=new GeckoMIMEInputStream(); 
strea.AddHeader("head","val"); 
geckoWebBrowser1.Navigate("http://google.com",GeckoLoadFlags.None,"",null,strea); 

我需要一种方法来添加自定义的帧头,绝对的所有请求都去一个网页时作出。 谢谢

回答

0

您可以实现自己的观察者(nsIObserver接口)来拦截http-on-modify-request通知并添加标题。

class Observer: nsIObserver 
{ 
    public void Observe(nsISupports aSubject, string aTopic, string aData) 
    { 
     var request = Xpcom.QueryInterface<nsIHTTPChannel>(aSubject); 
     request.SetRequestHeader(name, value, merge); 
    } 
} 

,并将其注册

Xpcom.GetService<nsIObserverService>("@mozilla.org/observer-service;1").AddObserver(new Observer(), "http-on-modify-request", false); 
0

您可以使用ObserveHttpModifyRequest事件:

var browser = new GeckoWebBrowser(); 
browser.UseHttpActivityObserver = true; 
browser.ObserveHttpModifyRequest += 
    (sender, e) => e.Channel.SetRequestHeader(name, value, merge: true); 

欲了解更多信息,请检查MDN nsIRequestnsIHttpChannel页。

相关问题