QNetworlAcessManager中的示例ssl实现

时间:2016-05-17 17:18:44

标签: qt openssl

是否有使用QNetworkAccessManager显示OpenSSL的示例?代码段或文章的链接?

1 个答案:

答案 0 :(得分:0)

  

是否有任何使用OpenSSL显示QNetworkAccessManager的示例?该   代码段或文章链接?

这个问题的答案分为两部分:

1)一般使用SSL

2)将基于Qt的程序与OpenSSL链接

第一个问题的答案可以是video。 stackoverflow上有很多答案,就像那个提及QNetworkAccessManager的视频一样不那么系统。另外,我喜欢这个帖子:QNetworkRequest and default SSL configuration。请务必使用post的{​​{1}}或get方法发送请求。

第二个问题的答案可以是:How to Include OpenSSL in a Qt project

我通常会这样做:

QNetworkAccessManager

数据通过插槽// connect 'finished' signal with consumer connect(&m_networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*))); // prepare request and that URL starts with https:// QNetworkRequest rqst(QUrl(jsonUser->url())); QByteArray postData = myJsonDocument().toJson(QJsonDocument::Compact); rqst.setRawHeader("Content-Type", "application/json"); auto strSize = QByteArray().append(QString::number(postData.size())); rqst.setRawHeader("Content-Length", strSize); // send the request out using HTTPS Post QNetworkReply* pNetworkReply = m_networkAccessManager.post(rqst, postData); // connect 'SSL errors' signal with consumer connect(pNetworkReply, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(onSSLError(const QList<QSslError> &))); 接收。处理SSL错误非常重要,最常见的是关于客户端系统上的缺失/错误证书。当然,以上所有内容不一定是一个函数,而是代表与流程相关的函数的片段。