2017-03-22 4 views
2

Ich möchte meine app von Qt WebKit zu Qt WebEngine. In Qt Webkit kann ich HTTP-Header mithilfe von QNetworkRequest, aber in Qt WebEngine gesetzt, der Doc sagt:PyQt WebEngine set http headers

Qt WebEngine seine eigene HTTP-Implementierung hat und nicht durch eine QNetworkAccessManager

Ich benutze PyQt5 gehen und Qt5.8.

Ich kann nicht finden, wie man HTTP-Überschriften in Qt WebEngine setzt.

-------------- Update ----------------

Schließlich funktionierte es! Vielen Dank! @Trilarion:

meine QWebEngineUrlRequestInterceptor Klasse

class NWUrlRequestInterceptor(QWebEngineUrlRequestInterceptor): 
    def __init__(self, headers): 
     super(QWebEngineUrlRequestInterceptor, self).__init__() 
     self.headers = headers 

    def set_headers(self,headers): 
     self.headers = headers 

    def interceptRequest(self, info): 
     print info, self.headers 
     for header, value in self.headers: 
      info.setHttpHeader(header, value); 

Verwendung in meinem Browser definieren:

self.request_interceptor = NWUrlRequestInterceptor(self.headers) 
self.webpage.profile().setRequestInterceptor(self.request_interceptor) 

Antwort