如何使用QT QWebView管理代理

时间:2011-05-20 13:26:09

标签: qt qt4 proxy qwebview qnetworkaccessmanager

这就是我改变代理的方式:

QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("ip");
proxy.setPort(8008);

QNetworkProxy::setApplicationProxy(proxy);

如果我在创建WebView之前这样做,它可以正常工作。但如果我在QWebView的生命周期内更改代理,它根本不会加载任何网站。在QT中改变代理的正确方法是什么?

感谢。

1 个答案:

答案 0 :(得分:5)

QWebPage::setNetworkAccessManager方法文档说

注意:目前不支持在QWebPage使用它之后更改网络访问管理器。这样做的结果是未定义的。

所以我的猜测是,一旦你设置了一个应用程序范围的代理,一旦构建了QWebPage,它就会得到一个QNetworkAccessManager,你无法改变它的代理设置。

作为使用应用程序范围代理的替代方法,您可以创建新的QNetworkAccessManager并使用其QNetworkAccessManager :: setProxy()方法来设置代理。然后将此QNetworkAccessManager实例传递到您的网页。

无论如何你需要玩它。我希望这会有所帮助。