Использую QNetworkAccessManager . Конечная цель получить возможность работать полноценно с прокси.
Вот этот тривиальный код работает как и ожидается. Все нормально. HTTP + HTTPS
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request(url);
QNetworkReply *reply = this->station->get(request);
QObject::connect(reply,SIGNAL(finished()),&EL, SLOT(quit()));
А вот в этом коде, если запрос делаю на HTTPS (через прокси) , то получаю ошибку:
[99] "an unknown network-related error was detected"
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request(url);
manager->setProxy(proxy); // proxy - корректный экземпляр QNetworkProxy
QNetworkReply *reply = this->station->get(request);
QObject::connect(reply,SIGNAL(finished()),&EL, SLOT(quit()));
если вместо manager->setProxy(proxy);
использовать QNetworkProxy::setApplicationProxy(proxy);
то все работает нормально.
Поковырял исходники, эта функция удаляет ProxyFactory всего приложения.
Исходя из этого пришел к такому решению:
QNetworkProxyFactory::setApplicationProxyFactory(NULL);
При установке такой прокси фабрики, предыдущий код начинает работать нормально через прокси с HTTPS запросами.
Вопрос: почему именно так решается проблема ? И как решить пробелму более элегантно ?