Добавьте заголовок 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.

Другие вопросы по тегам