当前位置: 首页 > article >正文

【QT网络问题】关于QT在调用天气等类似api接口时报错

报错内容

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
Error: "TLS initialization failed"

问题原因

Openssl库不匹配或者未安装,可以通过qdebug版本打印当前所需要的的openssl库,自己去官网下载

qDebug()<< QSslSocket::sslLibraryBuildVersionString();

解决方案

由于目前主流的get请求都是https所以导致会出现这个问题,直接改为http请求即可,在QT中强制使用http请求不要用https即可解决问题,相关代码如下。

void WeatherFetcher:: fetchWeather() {
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

    // 创建请求对象
    QNetworkRequest request;
    request.setUrl(QUrl(m_url));  // 设置 URL

    // 配置 SSL
    QSslConfiguration sslConfig = request.sslConfiguration();
    sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
    request.setSslConfiguration(sslConfig);

    // 发送请求
    QNetworkReply *reply = manager->get(request);

    connect(reply, &QNetworkReply::finished, this, [this, reply]() {
        if (reply->error() == QNetworkReply::NoError) {
            QByteArray response = reply->readAll();
            parseWeatherData(response);
        } else {
            qDebug() << "Error:" << reply->errorString();
        }
        reply->deleteLater();
    });
}

http://www.kler.cn/a/569887.html

相关文章:

  • 差旅费控平台作用、功能、11款主流产品优劣势对比
  • Docker 数据卷管理及优化
  • 【网络安全 | 渗透测试】GraphQL精讲二:发现API漏洞
  • CAN总线通信协议学习4——数据链路层之仲裁规则
  • 【大模型原理与技术】1.2基于学习的语言模型
  • Yocto + 树莓派摄像头驱动完整指南
  • 如何为Java面试准备项目经验
  • 【告别双日期面板!一招实现el-date-picker智能联动日期选择】
  • 初探Ollama与deepseek
  • 【GESP】C++二级真题 luogu-B4037 [GESP202409 二级] 小杨的 N 字矩阵
  • 【无人机】无人机通信模块,无人机图数传模块的介绍,数传,图传,图传数传一体电台,
  • Windows Docker玩转Nginx,从零配置到自定义欢迎页
  • 三元组排序(acwing)c++
  • 关于后端使用Boolean或boolean时前端收到的参数的区别
  • Spring(历史)
  • 基于STM32的智能家居蓝牙系统(论文+源码)
  • Vue 表单优化:下拉框值改变前的确认提示与还原逻辑实现
  • MATLAB中asManyOfPattern函数用法
  • Transformer 代码剖析7 - 词元嵌入(TokenEmbedding) (pytorch实现)
  • olmOCR:使用VLM解析PDF