Qt 使用QNetworkRequest提示错误字符串:SSL handshake failed

最近使用QNetworkRequest获取Url返回数据时发现获取到的内容为空,打印出errString()为:SSL handshake failed,在浏览器上获取Url数据提示不安全,考虑到可能是SSL证书有问题。

浏览器提示不安全:
网页反馈错误信息
调试打印错误字符串:
调试信息

解决方案:

//配置SSL证书
QSslConfiguration JsonBusiness::GetSslCertificate()
{
    bool bSupp = QSslSocket::supportsSsl();

    auto buildVersion = QSslSocket::sslLibraryBuildVersionString();

    QString version = QSslSocket::sslLibraryVersionString();

    qInfo() << bSupp << buildVersion << version ;

    QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();

    sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);

    sslConfig.setProtocol(QSsl::SslProtocol::AnyProtocol);

    QSslConfiguration::setDefaultConfiguration(sslConfig);
    
    return sslConfig;
}

再次调试后发现已经可以获取到Url数据。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐