pasagir16. August 2018 12:48
HTTP QNetworkAccessManager
C++, Qt, QNetworkAccessManager, http
Пытаюсь создать post() запрос -залогиниться на сервере и получить cookie. Велосипед изобретать не стал - все сделалкак по книге:
QNetworkAccessManager *manager; manager = new QNetworkAccessManager (); QNetworkRequest req; req.setUrl(QUrl("http://********.by/login")); req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded"); //get-запрос идет нормально //manager->get(QNetworkRequest(QUrl("http://env-2764881.mycloud.by/login"))); QByteArray postData; postData.append("email=*******@gmail.com&"); postData.append("password=******"); //Создаем QCookieJar: manager->setCookieJar(new QNetworkCookieJar(manager)); connect (manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
manager->post(req, postData);
СЛОТ
void Downloader::replyFinished(QNetworkReply *reply) { qDebug()<<"answer"; if(reply->error()) { qDebug()<<"ERROR"; qDebug()<<reply->errorString(); } else { qDebug()<<"reply->readAll()\n"<<reply->readAll(); } reply->deleteLater(); }
Как получить html-код страницы после входа?
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Добрый день
Спасибо, ща попробую
Наверное я куду-то не туда вставляю
код страницы не выдает, нашел вот такой способ. В слот пишем следующий код
сначала появляется код страницы до регистрации, потом код страницы после регистрации.
Да, ваш вариант тоже может быть вполне подходящим под задачу.
Спасибо
Еще один вопрос. Как в указанном примере на сервер можно передать несколько строк?
Вообще да, почему нет?
Я пытаюсь получить cookies и вставить их в повторный запрос. Пробую через QNeworkCookieJar, но пока не получается. Может есть какой пример?
К сожалению с куками не было повода поработать. Так что пока такой информации на сайте нет о QNeworkCookieJar
разобрался - просто полученные cookies пихаем в наш, уже существующий слот, правда, программа зацикливается, но это решаемо. Кстати, чем лучше пользоваться для прекращения работы программы при получения ответа от сервера?
Вообще, для выхода из программы можно использовать и доступ к инстансу приложения, через qApp->quit()
Также, если у вас есть главное окно приложения, то можно просто его закрыть.
mainwindow->close();
В данном случае, когда не остаётся активных окон, то приложение завершается.
И замечания по вашему коду
Вот это кусок кода бесполезный. Вы в любом случае выходите из метода.
Также рекомендую делать проверку так
Это сделает более полную проверку на наличие символов в QByteArray.
Не используйте foreach, подробнее в этой статье
Спасибо