Добавьте заголовок http ко всем запросам к GeckoFx
Я пытаюсь найти способ добавить пользовательский заголовок http ко всем запросам, сделанным через geckoFX. Я пытался добавить заголовок, используя
GeckoMIMEInputStream strea=new GeckoMIMEInputStream();
strea.AddHeader("head","val");
geckoWebBrowser1.Navigate("http://google.com",GeckoLoadFlags.None,"",null,strea);
Мне нужен способ добавить пользовательский заголовок, чтобы абсолютно ВСЕ запросы, сделанные при переходе на веб-страницу. Спасибо
2 ответа
Решение
Вы можете реализовать свой собственный наблюдатель (интерфейс 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);
Ты можешь использовать ObserveHttpModifyRequest
событие:
var browser = new GeckoWebBrowser();
browser.UseHttpActivityObserver = true;
browser.ObserveHttpModifyRequest +=
(sender, e) => e.Channel.SetRequestHeader(name, value, merge: true);
Для получения дополнительной информации проверьте страницы nsIRequest и nsIHttpChannel на MDN.