我希望能够读取以SSL模式从网页发送回的 header 。但是我的Qt应用程序无法进入网页,因为它处于我正在收集的SSL模式下?使用此连接,可以在我的应用中使用SSL进行普通的Webview浏览:

connect(view->page()->networkAccessManager(), SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
                        this, SLOT(onSslErrors(QNetworkReply*, const QList<QSslError> & )));

这可以抑制Web View 中的SSL错误,但是我有一个单独的函数,可以使用此方法获取 header :
//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;
  }

我需要此方法,因为在应用程序使用webview->load(QURL(appUrl ))连接到它之前,我在其中配置了带有webapps URL的配置文件。只是不确定如何使用QNetworkAccessManager抑制/处理SSL错误?

最佳答案

您需要将QNAM对象信号sslErrors(QNetworkReply *, QList<QSslError>)连接到设置QNetworkReply::ignoreSslErrors()的插槽,这将使QNAM继续运行。 Qt Docs on it

10-04 21:15