简单的问题:是否可以将Qt WebEngine中的代理URL(或域)列入白名单?
[当使用其他依赖于Qt Network的Qt模块时,可以像这样使用QNetworkProxyFactory::queryProxy()
设置每个URL代理:
QList<QNetworkProxy> MyProxyFactory::queryProxy(const QNetworkProxyQuery &query)
{
if (whitelist.contains(query.url)) {
return { QNetworkProxy::NoProxy };
}
...
}
但是,Qt WebEngine不使用Qt Network,而是使用Chrome网络堆栈。 Qt Web Engine仍然使用Qt应用程序级代理,但仅在一定程度上使用。 Qt WebEngine基本上只是将代理主机和端口从Qt Network代理复制到Chrome网络堆栈。 Qt WebEngine不会为每个请求调用QNetworkProxyFactory::queryProxy()
。
是否有其他方法可以达到在某些URL上没有代理,而在所有其他URL上没有代理的相同结果?
在QtWebEngine中,您必须使用我在QWebEngineUrlRequestInterceptor
中显示的QWebEngineUrlRequestInterceptor
,在您的情况下是:
this answer