ДЧ
10 сентября 2020 г. 17:16
Поддержка SSL в Qt 5.10
Всем привет. Очень сильно прошу помощи в подробной инструкции, как сделать поддержку https для моего приложения.
Мне просто по ссылке нужно скачать файлик и всё. Так как поддержки нету, то программа качает тот же файл, но внутри обычный html код.
Вот код приложения:
.pro
- QT += core gui network
- greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- TARGET = DownloadEQFirmware
- TEMPLATE = app
- DEFINES += QT_DEPRECATED_WARNINGS
- SOURCES += \
- main.cpp \
- mainwindow.cpp
- HEADERS += \
- mainwindow.h
- FORMS += \
- mainwindow.ui
mainwindow.h
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QUrl>
- #include <QNetworkAccessManager>
- #include <QNetworkRequest>
- #include <QNetworkReply>
- #include <QFile>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private:
- Ui::MainWindow *ui;
- QUrl urlStandard3N;
- QNetworkAccessManager *firmwareManager;
- public slots:
- void downloadFirmware();
- void downloadFirmwareFile(QNetworkReply *reply);
- };
- #endif // MAINWINDOW_H
mainwindows.cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- firmwareManager = new QNetworkAccessManager();
- connect(ui->btn_download, &QPushButton::clicked, this, &MainWindow::downloadFirmware);
- connect(firmwareManager, &QNetworkAccessManager::finished, this, &MainWindow::downloadFirmwareFile);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::downloadFirmware()
- {
- urlStandard3N = "http://www.eqdrive.com.ua/files/Updates/Standard3N/EQD4.6.0.1397.eqh";
- QNetworkRequest requestToUpdateStandard3N; // Отправляемый запрос
- requestToUpdateStandard3N.setUrl(urlStandard3N); // Устанавлвиваем URL в запрос
- firmwareManager->get(requestToUpdateStandard3N); // Выполняем запрос
- }
- void MainWindow::downloadFirmwareFile(QNetworkReply *reply)
- {
- if(reply->error()) {
- qDebug() << "reply error: " << reply->errorString();
- } else {
- QFile file("EQD4.6.0.1397.eqh");
- if(file.open(QFile::WriteOnly)) {
- file.write(reply->readAll());
- file.close();
- }
- }
- }
2
252
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 ноября 2024 г. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Сейчас обсуждают на форуме
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.