#qt #qt4 #proxy #qwebview #qnetworkaccessmanager
#qt #qt4 #прокси #qwebview #qnetworkaccessmanager
Вопрос:
Вот как я меняю прокси:
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("ip");
proxy.setPort(8008);
QNetworkProxy::setApplicationProxy(proxy);
Это работает должным образом, если я делаю это до создания WebView. Но если я поменяю прокси в течение срока службы QWebView, он просто не загрузит ни один сайт. Как правильно менять прокси на лету в QT?
Спасибо.
Комментарии:
1. Примечание в документе для QNetworkProxy гласит: «Примечание: Изменения, внесенные в подключенные в данный момент сокеты, не вступают в силу. Если вам нужно изменить подключенный сокет, вы должны повторно подключить его.» . Также вы пробовали webview-> page ()-> networkAccessManager ()-> SetProxy (прокси);
Ответ №1:
В документах метода QWebPage::setNetworkAccessManager говорится, что
Примечание: В настоящее время не поддерживается изменение диспетчера сетевого доступа после того, как QWebPage использовал его. Результаты выполнения этого не определены.
Итак, я предполагаю, что как только вы настроите прокси для всего приложения и после создания QWebPage он получит QNetworkAccessManager, и вы не сможете изменить настройки его прокси.
В качестве альтернативы использованию прокси для всего приложения, вы, вероятно, можете создать новый QNetworkAccessManager и использовать его метод QNetworkAccessManager::SetProxy() для настройки прокси. Затем передайте этот экземпляр QNetworkAccessManager на свою веб-страницу.
В любом случае вам нужно поиграть с этим. Я надеюсь, что это поможет.