这是我如何更改代理:
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("ip");
proxy.setPort(8008);
QNetworkProxy::setApplicationProxy(proxy);
如果在创建WebView之前更改代理,它将正常工作。但是,如果在QWebView的生命周期内更改代理,则无法加载任何站点。在QT中更改代理的正确方法是什么?
谢谢。
这是我如何更改代理:
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("ip");
proxy.setPort(8008);
QNetworkProxy::setApplicationProxy(proxy);
QWebPage::setNetworkAccessManager 方法文档指出:
注意:在 QWebPage 使用 Network Access Manager 之后,目前不支持更改 Network Access Manager。这样做的结果是未定义的。
因此,我的猜测是一旦设置了应用程序范围内的代理,并且构建了 QWebPage,它会获取一个 QNetworkAccessManager,您无法更改其代理设置。
作为使用应用程序范围代理的替代方案,您可能可以创建一个新的 QNetworkAccessManager,并使用其 QNetworkAccessManager::setProxy() 方法设置代理。然后将此 QNetworkAccessManager 实例传递给您的网页。
无论如何,您需要尝试一下。希望这有所帮助。