ДЧ
10 сентября 2020 г. 17:16

Поддержка SSL в Qt 5.10

HTTPS, Qt 5.10

Всем привет. Очень сильно прошу помощи в подробной инструкции, как сделать поддержку https для моего приложения.
Мне просто по ссылке нужно скачать файлик и всё. Так как поддержки нету, то программа качает тот же файл, но внутри обычный html код.

Вот код приложения:

.pro

  1. QT += core gui network
  2.  
  3. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
  4.  
  5. TARGET = DownloadEQFirmware
  6. TEMPLATE = app
  7.  
  8. DEFINES += QT_DEPRECATED_WARNINGS
  9.  
  10. SOURCES += \
  11. main.cpp \
  12. mainwindow.cpp
  13.  
  14. HEADERS += \
  15. mainwindow.h
  16.  
  17. FORMS += \
  18. mainwindow.ui

mainwindow.h

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3.  
  4. #include <QMainWindow>
  5. #include <QUrl>
  6. #include <QNetworkAccessManager>
  7. #include <QNetworkRequest>
  8. #include <QNetworkReply>
  9. #include <QFile>
  10.  
  11. namespace Ui {
  12. class MainWindow;
  13. }
  14.  
  15. class MainWindow : public QMainWindow
  16. {
  17. Q_OBJECT
  18.  
  19. public:
  20. explicit MainWindow(QWidget *parent = 0);
  21. ~MainWindow();
  22.  
  23. private:
  24. Ui::MainWindow *ui;
  25.  
  26. QUrl urlStandard3N;
  27. QNetworkAccessManager *firmwareManager;
  28.  
  29. public slots:
  30. void downloadFirmware();
  31. void downloadFirmwareFile(QNetworkReply *reply);
  32. };
  33.  
  34. #endif // MAINWINDOW_H
  35.  

mainwindows.cpp

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3.  
  4. MainWindow::MainWindow(QWidget *parent) :
  5. QMainWindow(parent),
  6. ui(new Ui::MainWindow)
  7. {
  8. ui->setupUi(this);
  9.  
  10. firmwareManager = new QNetworkAccessManager();
  11.  
  12. connect(ui->btn_download, &QPushButton::clicked, this, &MainWindow::downloadFirmware);
  13. connect(firmwareManager, &QNetworkAccessManager::finished, this, &MainWindow::downloadFirmwareFile);
  14. }
  15.  
  16. MainWindow::~MainWindow()
  17. {
  18. delete ui;
  19. }
  20.  
  21. void MainWindow::downloadFirmware()
  22. {
  23. urlStandard3N = "http://www.eqdrive.com.ua/files/Updates/Standard3N/EQD4.6.0.1397.eqh";
  24.  
  25. QNetworkRequest requestToUpdateStandard3N; // Отправляемый запрос
  26. requestToUpdateStandard3N.setUrl(urlStandard3N); // Устанавлвиваем URL в запрос
  27. firmwareManager->get(requestToUpdateStandard3N); // Выполняем запрос
  28. }
  29.  
  30. void MainWindow::downloadFirmwareFile(QNetworkReply *reply)
  31. {
  32. if(reply->error()) {
  33. qDebug() << "reply error: " << reply->errorString();
  34. } else {
  35. QFile file("EQD4.6.0.1397.eqh");
  36. if(file.open(QFile::WriteOnly)) {
  37. file.write(reply->readAll());
  38. file.close();
  39. }
  40. }
  41. }
  42.  
2

Вам это нравится? Поделитесь в социальных сетях!

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
  • Последние комментарии
  • IscanderChe
    12 апреля 2025 г. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    1 апреля 2025 г. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    9 марта 2025 г. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    9 марта 2025 г. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    22 ноября 2024 г. 21:51
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…