- //查看当前网络请求支持协议
QStringList zhi=manger->supportedSchemes(); QString str = zhi.join(" "); // 将各段用":"连接形成新的字符串 QMessageBox msgBox; msgBox.setText("当前手机支持协议:\n"+str); msgBox.exec();
- // 发送https请求前准备工作;
network_request->setUrl(QUrl(ui->lineEdit->text())); QSslConfiguration conf = network_request->sslConfiguration(); conf.setPeerVerifyMode(QSslSocket::VerifyNone); conf.setProtocol(QSsl::TlsV1SslV3); network_request->setSslConfiguration(conf); // network_request->setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
QNetworkReply *reply =network_manager->get(*network_request); QString ssl=QSslSocket::sslLibraryBuildVersionString(); //QString str = ssl.join(" "); // 将各段用":"连接形成新的字符串 QMessageBox msgBox; msgBox.setText("openssl版本信息:\n"+ssl); msgBox.exec();
查看 qt 支持的 ssl 版本和当前支持的网络协议(备用) // 查詢Qt支持的版本 bool bSupp = QSslSocket::supportsSsl(); QString buildVersion = QSslSocket::sslLibraryBuildVersionString();QString version = QSslSocket::sslLibraryVersionString(); qDebug() << bSupp << buildVersion << version; // 查看当前网络请求支持协议 QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);qDebug() << accessManager->supportedSchemes(); SSL 证书认证三种方式 SSL 证书认证,有以下三种: // 1. 方法 QSslConfiguration config ; config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setProtocol(QSsl::TlsV1); QNetworkRequest request(req); request.setSslConfiguration(config); // 2. 方法 QNetworkRequest request ; request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); QNetworkReply* reply = QNetworkAccessManager::createRequest(op, request, outgoingData);reply->ignoreSslErrors(); // 3. 方法 QSslConfiguration config ; QList<QSslCertificate> certs = QSslCertificate::fromPath("C:\\FiddlerRoot.crt"); config.setCaCertificates(certs); QNetworkRequest request(req); request.setSslConfiguration(config); 文章出处:https://itzhai.cn/xuexijiaocheng/qt/1312.html
|