Russian Qt Forum
Ноябрь 24, 2024, 00:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QNetworkAccesManager как подружить с прокси сервером?  (Прочитано 4366 раз)
explorer.85
Гость
« : Сентябрь 11, 2011, 09:52 »

Вобщем, у меня есть экземпляр QNAM который общается с сервером в интернет. Проблема в том как заставить его работать через прокси и она в принципе решается тоже довольно легко
http://ashemyakin.ru/qt-proxy-support/. Только если делать как описано по ссылке то соответсвенно через обычное direct соединение приложение работать перестает!
Из этого я сделал вывод что нам нужно для начала узнать есть ли у нас в системе прокси, и уже после этого в самом приложении либо включать поддержку прокси либо нет.
Вопрос: Как заставить мое приложение автоматически определять, есть ли прокси в системе или нет?

Спасибо всем за любые ответы!!!
Записан
explorer.85
Гость
« Ответ #1 : Сентябрь 11, 2011, 12:23 »

Нашел вот такую тему еще
http://www.qtcentre.org/threads/27201-QNetworkAccessManager-proxy-issue?highlight=qnetworkproxy
но указанный там пример тоже не работает прокси не возвращается(
Записан
explorer.85
Гость
« Ответ #2 : Сентябрь 11, 2011, 13:43 »

Вобщем нашел такой вариант

Код:
QNetworkProxyQuery npq(QUrl(QLatin1String("http://www.google.com")));
QList<QNetworkProxy> l = QNetworkProxyFactory::systemProxyForQuery(npq);

if (l.count() !=0)
{
    qDebug() << "proxy founded" << l.at(0).type();
    if (l.at(0).type() != QNetworkProxy::NoProxy)
    {
        qDebug() << l.at(0).hostName();
    }
}

Однако этот код у меня возвращает  qDebug() << "proxy founded" << QNetworkProxy::NoProxy; 
Что означает что прокси-сервер у меня не найден. Хотя в настройках windows у меня установлено использовать прокси сервер и осел с хромом заходят в интернет через него.
Прокси сервер у меня стоит локально на той же машина на которой и запускаю свое приложение.

Народ если кто за проксей сидит потестите этот код пожалуйста может у вас что нибудь другое он вернет?
Записан
Rem Norton
Гость
« Ответ #3 : Сентябрь 15, 2011, 16:35 »

Попробуй так:
Код
C++ (Qt)
QNetworkProxyQuery npq(QUrl(QLatin1String("http://www.google.com")));
QNetworkProxyFactory::setUseSystemConfiguration(true);
QList<QNetworkProxy> l = QNetworkProxyFactory::systemProxyForQuery(npq);
 

Сейчас прокси под рукой нет, но помнится,что вот так должно работать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.179 секунд. Запросов: 21.