Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: Dimka Novikov от Август 26, 2016, 00:33



Название: Высокоуровневая обёртка над QNetworkAccessManager для упрощения работы с веб
Отправлено: Dimka Novikov от Август 26, 2016, 00:33
Привет, народ! Мы выложили нашу небольшую библиотеку. Она предоставляет удобный способ для работы с вебом.

Например, загрузить страницу можно так:
Код:
const QByteArray data = NetworkRequestLoader::loadSync("https://github.com");

или так:
Код:
NetworkRequestLoader::loadAsync("https://github.com", [] (const QByteArray& _loadedData) {
    qDebug() << "Loaded" << _loadedData.size() << "bytes.";
});

Если кому интересно, то пощупать можно тут - https://github.com/dimkanovikov/WebLoader.

Обратная связь приветствуется! Критика тоже!;)


Название: Re: Высокоуровневая обёртка над QNetworkAccessManager для упрощения работы с веб
Отправлено: gil9red от Август 26, 2016, 01:59
Она только Get запросы умеет делать?
А Post?


Название: Re: Высокоуровневая обёртка над QNetworkAccessManager для упрощения работы с веб
Отправлено: Dimka Novikov от Август 26, 2016, 07:54
Post тоже без проблем.

Код:
NetworkRequest request;
requset.setRequestMethod(NetworkRequest::Post);
request.addRequestAttribute("id", 1893);
request.addRequestAttributeFile("photo", "/home/user/Images/photo.png");
const QByteArray postStatus = request.loadSync("https://site.com/API/v1/savePhoto/");


Название: Re: Высокоуровневая обёртка над QNetworkAccessManager для упро&
Отправлено: Day от Сентябрь 15, 2016, 09:11
При попытке сборки ругается на HttpMultiPart_p.cpp: #include "QMimeDatabase" - нет такого файла
Qt 4.5
Наверное, дело в версии Qt?
Нельзя ли это дело как-то обойти, не устанавливая новой версии Qt?


Название: Re: Высокоуровневая обёртка над QNetworkAccessManager для упрощения работы с веб
Отправлено: gil9red от Сентябрь 15, 2016, 10:36
QMimeDatabase (http://doc.qt.io/qt-5/qmimedatabase.html) появилось в Qt 5.0


Название: Re: Высокоуровневая обёртка над QNetworkAccessManager для упрощения работы с веб
Отправлено: alexorleon от Ноябрь 16, 2016, 10:50
Post тоже без проблем.

Код:
NetworkRequest request;
requset.setRequestMethod(NetworkRequest::Post);
request.addRequestAttribute("id", 1893);
request.addRequestAttributeFile("photo", "/home/user/Images/photo.png");
const QByteArray postStatus = request.loadSync("https://site.com/API/v1/savePhoto/");

Спасибо за полезную библиотеку!
В методе void NetworkRequest::addRequestAttributeFile была опечатка. Надо поменять на вызов соответствующего действия addAttributeFile. А то атрибуты файлы добавлялись в текстовые атрибуты.