Russian Qt Forum

Qt => Работа с сетью => Тема начата: explorer.85 от Сентябрь 11, 2011, 09:52



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

Спасибо всем за любые ответы!!!


Название: Re: QNetworkAccesManager как подружить с прокси сервером?
Отправлено: explorer.85 от Сентябрь 11, 2011, 12:23
Нашел вот такую тему еще
http://www.qtcentre.org/threads/27201-QNetworkAccessManager-proxy-issue?highlight=qnetworkproxy (http://www.qtcentre.org/threads/27201-QNetworkAccessManager-proxy-issue?highlight=qnetworkproxy)
но указанный там пример тоже не работает прокси не возвращается(


Название: Re: QNetworkAccesManager как подружить с прокси сервером?
Отправлено: explorer.85 от Сентябрь 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 у меня установлено использовать прокси сервер и осел с хромом заходят в интернет через него.
Прокси сервер у меня стоит локально на той же машина на которой и запускаю свое приложение.

Народ если кто за проксей сидит потестите этот код пожалуйста может у вас что нибудь другое он вернет?


Название: Re: QNetworkAccesManager как подружить с прокси сервером?
Отправлено: Rem Norton от Сентябрь 15, 2011, 16:35
Попробуй так:
Код
C++ (Qt)
QNetworkProxyQuery npq(QUrl(QLatin1String("http://www.google.com")));
QNetworkProxyFactory::setUseSystemConfiguration(true);
QList<QNetworkProxy> l = QNetworkProxyFactory::systemProxyForQuery(npq);
 

Сейчас прокси под рукой нет, но помнится,что вот так должно работать.