刚开始学Qt,要从客户端用https连接服务器端,下面是我的代码:
QString req = "
https://192.168.3.8/api";
QUrl urlTemp(req);
urlTemp.setPort(443);
QNetworkRequest request(urlTemp);
QSslConfiguration sslConfiguration = request.sslConfiguration();
sslConfiguration.setProtocol(QSsl::AnyProtocol);
sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyPeer); //必须要验证数字证书,所以不能用QSslSocket::VerifyNone或者QSslSocket::QueryPeer模式
QList<QSslCertificate> certs = sslConfiguration.caCertificates();
certs.append(QSslCertificate::fromPath(QLatin1String("d:\\ca.pem"), QSsl::Pem));
sslConfiguration.setCaCertificates(certs);
request.setSslConfiguration(sslConfiguration);
QNetworkAccessManager manager;
connect(&manager,SIGNAL(finished(QNetworkReply*)),
this,SLOT(slotFinished(QNetworkReply*)));
其中d:\\ca.pem是我保存的服务器端的数字证书。
但是在slotFinished()里面总是收到SslHandshakeFailedError,高手帮我看看,
问题出在什么地方。