Я хочу иметь возможность читать заголовки, отправленные обратно с веб-страницы в режиме SSL. Однако мое приложение Qt не может получить доступ к веб-странице, потому что она находится в режиме SSL, который я собираю? Нормальный просмотр веб-страниц в SSL возможен в моем приложении с помощью этого подключения:
connect(view->page()->networkAccessManager(), SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
this, SLOT(onSslErrors(QNetworkReply*, const QList<QSslError> & )));
Это подавляет ошибки SSL в веб-просмотре, но у меня есть отдельная функция, которая получает заголовки, используя этот метод:
//Send a request to validate URL
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl(text));
request.setRawHeader("User-Agent", "MyApp1.0");
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
QNetworkReply *reply = manager->get(request);
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
qDebug() << "QLoop: " << reply->rawHeader("My-Application");
if(reply->rawHeader("My-Application") == "1"){
appUrl = text;
}
Мне нужен этот метод, потому что я установил файл конфигурации с URL нашего веб-приложения, прежде чем приложение подключится к нему, используя webview->load(QURL(appUrl ))
, Просто не знаете, как подавлять / обрабатывать ошибки SSL с помощью QNetworkAccessManager?
Вам необходимо подключить сигнал объектов QNAM sslErrors(QNetworkReply *, QList<QSslError>)
в слот, где вы установите QNetworkReply::ignoreSslErrors()
и это позволит QNAM продолжать работать. Qt Docs на это.
Других решений пока нет …