我想通过子类QWebEngineUrlRequestInterceptor拦截对另一个的url请求:
class RequestInterceptor(QWebEngineUrlRequestInterceptor):
def interceptRequest(self,info):
print('#################interceptRequest')
print(info.requestUrl(),info.firstPartyUrl(),info.NavigationType,info.resourceType(),info.requestMethod())
if info.requestUrl().endswith("/jquery.js"):
info.redirect('/jqueryTest.js')
app = QApplication([])
p = QWebEnginePage()
v = QWebEngineView()
v.setPage(p)
p.profile().setRequestInterceptor(RequestInterceptor())
c.registerObject('bridge', p)
url = "http://127.0.0.1:8000/test.html?t=5"
v.setUrl(QUrl(url))
v.show()
app.exec_()
当我运行代码时,拦截器不起作用!
希望有人给我帮助,谢谢!
PS: 可能它是由python垃圾收集引起的。所以我通过修改代码
将拦截器存储在varible中p.profile().setRequestInterceptor(RequestInterceptor())
到
interceptor = RequestInterceptor()
p.profile().setRequestInterceptor(interceptor )
这就是全部。
答案 0 :(得分:1)
可能是由python垃圾收集引起的。所以我通过修改代码将拦截器存储在varible中
p.profile().setRequestInterceptor(RequestInterceptor())
到
interceptor = RequestInterceptor()
p.profile().setRequestInterceptor(interceptor )
这就是全部。