我正在试图找到一种方法来为通过geckoFX发出的所有请求添加自定义http标头。我尝试使用
添加标题printf "IP: $(curl -s ifconfig.co/x-real-ip) anything-else\n"
我需要一种方法来添加自定义标头,绝对是去往网页时发出的所有请求。 谢谢
答案 0 :(得分:1)
您可以实现自己的观察者(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);
答案 1 :(得分:0)
您可以使用ObserveHttpModifyRequest
事件:
var browser = new GeckoWebBrowser();
browser.UseHttpActivityObserver = true;
browser.ObserveHttpModifyRequest +=
(sender, e) => e.Channel.SetRequestHeader(name, value, merge: true);
有关详情,请查看MDN上的nsIRequest和nsIHttpChannel页。