1

Qtクリエーターで作成したプログラムがあります。Google の C2DM サーバーに https 投稿を送信する必要があります。

QSslSocket を使用しようとすると、SSL が機能していないと表示されます。

Qt のドキュメントには、法的な理由から SSL サポートは同梱されておらず、QSslSocket は単なるラッパーであり、自分で OpenSSL をインストールする必要があると記載されています。DLL をコピーしようとしましたが、まだ機能しません。OpenSSL をインストールして Qt Creator で動作させる手順を教えてもらえますか?

4

1 に答える 1

0

使ってみませんQNetworkAccessManagerか?私は次のようなものを使用してJSONをWebサービスに投稿します。

void HttpPoster::post(){

  if(!manager)
     manager = new QNetworkAccessManager(this);

  QSslConfiguration config = QSslConfiguration::defaultConfiguration();
  config.setPeerVerifyMode(QSslSocket::VerifyNone);
  //config.setProtocol(QSsl::TlsV1);

  QNetworkRequest request ;
  request.setUrl(QUrl("https://somehost.somedomain"));
  request.setRawHeader("User-Agent", "MyApp");
  request.setRawHeader("Content-type", "text/json");

  request.setSslConfiguration(config);

  if(!reply){
     reply =  manager->post(request,m_Data);
  }

  connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(handleErrors(QNetworkReply::NetworkError)));
  connect(reply,SIGNAL(sslErrors(QList<QSslError>)),this,SLOT(handleSSLErrors(QList<QSslError>)));
  connect(reply,SIGNAL(finished()),this,SLOT(replyFinished()));

}

There's some methods omitted (handle errors, handle replies, handle ssl errors, etc). You can find much better examples in the docs.

于 2012-05-14T17:16:54.907 に答える