Как мне управлять прокси с помощью QT QWebView

#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 на свою веб-страницу.

В любом случае вам нужно поиграть с этим. Я надеюсь, что это поможет.