我想将我的应用程序从Qt WebKit移植到Qt WebEngine。在Qt中,我可以使用QNetworkRequest设置http头,但在Qt WebEngine中,文档说:
Qt WebEngine有自己的HTTP实现,不能通过QNetworkAccessManager
我使用PyQt5和Qt5.8。
我找不到如何在Qt WebEngine中设置http头。
终于成功了!谢谢!@Trilarion:
定义我的QWebEngineUrlRequestInterceptor类
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);在我的浏览器中使用:
self.request_interceptor = NWUrlRequestInterceptor(self.headers)
self.webpage.profile().setRequestInterceptor(self.request_interceptor)发布于 2017-03-22 12:32:35
您应该实现一个QWebEngineUrlRequestInterceptor,在它的interceptRequest方法中您可以得到一个QWebEngineUrlRequestInfo,它可以通过setHttpHeader设置一个http头。
通过QWebEngineView.page().profile().setRequestInterceptor.设置请求拦截器
https://stackoverflow.com/questions/42942295
复制相似问题