2013-01-11 31 views
5

SSLモードでウェブページから送り返されたヘッダを読み取れるようにします。私のQtアプリはSSLモードになっているのでWebページにアクセスできません。 SSLでの通常のWebViewのブラウジングは、この接続を使用して私のアプリで可能です:SSLエラーを抑制する

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

これはWebViewの中に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; 
    } 

私はwebview->load(QURL(appUrl))を使ってアプリケーションがそれに接続する前に、webapps URLでconfigファイルを設定しているので、この方法が必要です。 QNetworkAccessManagerを使用してSSLエラーを抑制/処理する方法がわからないのですか?

答えて

7

QNAMオブジェクト信号sslErrors(QNetworkReply *, QList<QSslError>)QNetworkReply::ignoreSslErrors()に設定したスロットに接続する必要があります.QNAMオブジェクトは、QNAMを継続して実行できるようになります。 Qt Docs on it

+0

お返事ありがとうございました。私は 'reply-> ignoreSslErrors();'を途中で笑ってしまい、うまく動作しませんでしたので、私はあなたのメソッドに行くでしょう:) – Kal

+0

あなたの素早い応答のために感謝しました@Nicholasスミス – Kal

+0

私が最初に試したのは、シグナルが放射されていることを完全に無視し、QNAMを作成した場所の 'reply-> ignoreSslErrors()'です。簡単な間違い! –

関連する問題