RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 952577
Accepted
Andrew Popov
Andrew Popov
Asked:2020-03-05 18:46:16 +0000 UTC2020-03-05 18:46:16 +0000 UTC 2020-03-05 18:46:16 +0000 UTC

qt.network.ssl:QSslSocket::connectToHostEncrypted:TLS 初始化失败

  • 772

存在以下类型的问题。有一个应用程序可以发出 post 和 get 请求,一切正常,但仅使用 http,但如果请求通过 https,则 Qt 抛出错误 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS 初始化失败。谷歌搜索问题后,我发现可能没有 SSL 库,因此问题是,我在哪里可以得到这个东西以及如何将它连接到项目?我将不胜感激任何提示,以防我附上我的代码

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString A, B, C, X, Z;
    QByteArray data= "{ \"Authorization\":\"Bearer AQAAAAAGX9TiAATuwa8z\" }";
    A=ui->lineEdit->text(); //широта
    B=ui->lineEdit_2->text(); //долгота
    C=ui->lineEdit_3->text(); // масштаб
    X= "https://static-maps.yandex.ru/1.x/?ll="+B+","+A+"&z="+C+"&size=600,450&l=map"; //сначала долгота
    ui->preview->load(QUrl(X));
    ui->preview->show();

    manager = new QNetworkAccessManager();
    connect(manager, &QNetworkAccessManager::finished, this, &MainWindow::onResult);
    QNetworkRequest request(QUrl("https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/c9qmjpt4v23oohbuj1vu/databases/db1"));
//    manager->get(QNetworkRequest(QUrl("http://www.evileg.ru/it_example.json")));
    manager->get(request);
//    manager->post(request, data);


}

void MainWindow::onResult(QNetworkReply *reply)
{
    if(reply->error() == QNetworkReply::NoError){
        QByteArray json_data = reply->readAll();
        ui->textEdit->setPlainText(json_data)
       }
    else {
        qDebug() << "error: " << reply->error();
    }
       reply->deleteLater();
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QUrlQuery>
#include <QUrl>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();
    void onResult(QNetworkReply *reply);

private:
    Ui::MainWindow *ui;
    QNetworkAccessManager* manager;
};

#endif // MAINWINDOW_H
qt
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Best Answer
    Andrew Popov
    2020-03-06T03:12:14Z2020-03-06T03:12:14Z

    所以,对于Windows用户和MSVC的编译器,如果遇到类似的问题,我可以建议做以下事情:
    1. Win32 OpenSSL 1.0 .studio 可能不同),您可以下载轻量级。
    2. 安装 Win32 OpenSSL。
    3、从之前安装的OpenSLL的根文件夹中取出libeay32.dll、libssl32.dll、ssleay32.dll文件,沿着路径\Qt\5.12.1\msvc2017\bin发送(Qt和MSVC版本可能不同),我们按照位数发送。
    4.我们检查性能

    这个选项帮助了我。

    • 7
  2. mr NAE
    2020-04-11T23:25:16Z2020-04-11T23:25:16Z

    QSslSocket::connectToHostEncrypted: TLS initialization failed将所有内容传输到虚拟机时遇到同样的问题。每次用Qt复制libs到文件夹不是很方便,很容易忘记,尤其是版本经常变化。因此,在该安装程序中,有必要将项目标记为复制 Windows 中的所有内容。

    更新:Qt 5.14 带来了一个已编译的 OpenSSL ( Qt\Tools\OpenSSL)。摆脱QSslSocket::connectToHostEncrypted: TLS initialization failed添加的PATH方式%QTDIR%/../../Tools/OpenSSL/Win_x64/bin

    • 3
  3. Юрий
    2022-07-20T12:27:55Z2022-07-20T12:27:55Z

    也许它会对某人派上用场......最近我发现在一台 PC 上 SSL 库 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll 不想被加载到任何一个。事实证明,它们依赖于 vcruntime140.dll,它包含在 Microsoft Visual C++ 2015 Update 3 RC 包中。您可以相应地要求安装整个软件包,但我只是将这个 vcruntime140.dll 包含在我的应用程序中,一切正常!

    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5