Qt QNetworkRequest和默认SSL配置

Qt QNetworkRequest和默认SSL配置,qt,ssl,qnetworkaccessmanager,qnetworkrequest,Qt,Ssl,Qnetworkaccessmanager,Qnetworkrequest,我使用下面的代码向服务器发出HTTPS请求 QNetworkRequest request; //request.setSslConfiguration(QSslConfiguration::defaultConfiguration()); request.setUrl(QUrl("https://www.someurl.com/")); QNetworkReply *reply = manager->get(request); 我的测试服务器似乎一切正常,但我想知道是否建议设置de

我使用下面的代码向服务器发出HTTPS请求

QNetworkRequest request;

//request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
request.setUrl(QUrl("https://www.someurl.com/"));

QNetworkReply *reply = manager->get(request);
我的测试服务器似乎一切正常,但我想知道是否建议设置defaultConfiguration(第二行取消注释),或者在使用SSL时网络API是否会自动检查所有defaultConfiguration?如果它检查了,如果我添加一个自定义配置,它是否也可以?我的意思是,是否需要将自定义配置附加到默认配置列表中?例如:

QSslConfiguration SslConfiguration(QSslConfiguration::defaultConfiguration());

QList<QSslCertificate> certificates = SslConfiguration.caCertificates();
certificates.append(QSslCertificate::fromData(certificate.toAscii(), QSsl::Pem));
SslConfiguration.setCaCertificates(certificates);

request.setSslConfiguration(SslConfiguration);
QSslConfiguration SslConfiguration(QSslConfiguration::defaultConfiguration());
QList certificates=SslConfiguration.caCertificates();
append(QSslCertificate::fromData(certificate.toAscii(),QSsl::Pem));
SSL配置。设置证书(证书);
请求。设置SLConfiguration(SslConfiguration);
编辑:我想补充一点,我正在Symbian平台上工作。

来自
:

默认情况下,不支持SSL配置 设置,允许后端 自由选择配置是什么 对他们最好

您可以使用以下代码验证此语句:

#include <QtGui/QApplication>
#include <QtCore/QDebug>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QSslConfiguration>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QNetworkAccessManager qnam;
    QNetworkRequest request;
    QNetworkReply* reply = qnam.get(request);

    qDebug() << "Default SSL configuration isNull: "
             << QSslConfiguration::defaultConfiguration().isNull();

    qDebug() << "SSL configuration used by QNAM isNull: "
             << reply->sslConfiguration().isNull();

    return app.exec();
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
QApplication应用程序(argc、argv);
QNetworkAccessManager qnam;
QNetworkRequest请求;
QNetworkReply*reply=qnam.get(请求);
qDebug()
void addDefaultCaCertificate ( const QSslCertificate & certificate )
bool addDefaultCaCertificates ( const QString & path, QSsl::EncodingFormat encoding = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString )
void addDefaultCaCertificates ( const QList<QSslCertificate> & certificates )
void setDefaultCaCertificates ( const QList<QSslCertificate> & certificates )