Qt creator 启用 SSL

标签 qt ssl qt-creator

我有一个用 Qt creator 构建的程序。我需要向 Google 的 C2DM 服务器发送 https 帖子。

当我尝试使用 QSslSocket 时,它说我的 SSL 不工作。

Qt 文档指出,出于法律原因,它不附带 SSL 支持,并且 QSslSocket 只是一个包装器,我需要自己安装 OpenSSL。我试过复制 DLL,但它仍然不起作用。有人可以指导我完成安装 OpenSSL 并使其与 Qt Creator 一起工作的步骤吗?

最佳答案

为什么不使用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()));

}

省略了一些方法(处理错误、处理回复、处理 ssl 错误等)。您可以在文档中找到更好的示例。

关于Qt creator 启用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350171/

相关文章:

c++ - 使用 QTextCursor 选择一段文本

ssl - WebSockets : wss from client to Amazon AWS EC2 instance through ELB

php - Apache SSL 错误尝试使用 pg_query_params()

qt - QProcess和shell : Destroyed while process is still running

c++ - 如何强制具有依赖关系的qbs产品之间同步?

qt - 为什么 Qt Creator 的核心是插件?

c++ - 访问 QApplication::arguments 时出现段错误

c++ - 没有匹配的成员函数调用 'connect' - 使用 'this' 时

java - 我应该使用 JAI 吗?

ssl - 连接到 http ://xxxxx. com 被拒绝