May 10, 2019, 11:46 a.m.

Как в Qt подключится к серверу через API

API

Добрый день. Как в Qt подключится к серверу через API? Взял к примеру API почты россии . К примеру, каак воспользоваться методом getOperationHistory и получить историю письма?

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
4

Добрый день.

Забавно, что вы попали именно на это API. Дело в том, что там не REST-API, а SOAP API, который начал разрабатываться значительно раньше. Можно конечно руками его парсить, но лучше использовать генераторы. Поищите информацию о gSoap, он умеет генерировать файлы для C++, которые будут описывать классы того API.

Для подключения в принципе должно быть достаточно использовать и QNetworkAccessManager , просто посылать get или post запрос на тот адрес, который установлен в качестве конечной точки у почты России.

UPD: Хотя даже не так, самого gSoap должно быть достаточно, чтобы посылать запросы на такое API

Qt в таком случае будет лишь оболочкой для удобства.

0

А по какому адресу оттправлять запрос? По адресу сервиса? В примерах отправки написанно так, может адрес один из этих?

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 

xmlns:oper="http://russianpost.org/operationhistory" 

xmlns:data="http://russianpost.org/operationhistory/data" 

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
0

То, что вы привели - это тело запроса, там служебные данные передаются и так далее, а конечная точка там в самом начале в таблице написана

Address of the service https://tracking.russianpost.ru/rtm34

Вот на неё и нужно оправлять запрос.

0

Спасибо. Я создал в хедере

QNetworkAccessManager apiQuery;

В фуункции написал так:

    QNetworkRequest request;
    request.setUrl(QUrl("https://tracking.russianpost.ru/rtm34"));

    apiQuery.get(request);

Скажите пожалуйста, как задать request запрос getOperationHistory ? И что еще нужно задать?

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
m
May 19, 2019, 1:49 a.m.
mahhaki

Qt - Test 001. Signals and slots

  • Result:78points,
  • Rating points2
S
May 17, 2019, 1:14 p.m.
SunBro

Qt - Test 001. Signals and slots

  • Result:42points,
  • Rating points-8
b
May 17, 2019, 4:18 a.m.
banana

C++ - Тест 003. Условия и циклы

  • Result:57points,
  • Rating points-2
Last comments
May 20, 2019, 7:20 p.m.
Евгений Легоцкой

Добрый день! Вы не думали разместить репозиторий проекта на GitHub?
P.
May 18, 2019, 2:03 p.m.
PELMYACH .

Спасибо большое! Вскоре буду разбираться!
May 18, 2019, 9:13 a.m.
Евгений Легоцкой

Добрый день! Отнимать значение общего счётчика можно в деструкторе класса кнопки QDynamicButton::~QDynamicButton(){ ResID--;} При этом я бы ещё переустанавливал значения вс...
P.
May 14, 2019, 10:33 p.m.
PELMYACH .

Здравствуйте!А не подскажите, как можно при удалении какой либо кнопки, у щётчика отнять значение?Дабы например четвёртой кнопке соответствовал ID 4, а не 5 скажем
May 6, 2019, 6:39 a.m.
Евгений Легоцкой

Добрый день. Этот урок для Qt Quick Control версии 1, Вы используете вторую версию. Здесь style уже нет, кастомизацию можно делать уже или черещ соответствующие property или через ...
Now discuss on the forum
May 21, 2019, 1:51 p.m.
Евгений Легоцкой

Добрый день! Вот пример создания динамической библиотеки в Qt . Да, там показан один класс, но абсолютно ничего не меняется, сколько бы классов вы там не имели. Ва...
May 20, 2019, 8:43 a.m.
Михаиллл

Кинул библиотеки в папку с проектом и в папку к компилируемым файлам.В файле проекта прописал так, но все равно выдает ту же ошибку QT += core gui networkgreaterThan(QT_MAJOR_VERSI...
May 20, 2019, 1:47 a.m.
linq

Что вы понимаете под статической сборкой приложений? В какой среде?
May 19, 2019, 10:52 a.m.
Евгений Легоцкой

Если честно, то мне нужно самому время потратить, чтобы глянуть это дело. Я использовал Flutter для разработки, а не Qt. Просто исходя из опыта, могу сказать, что по большей части всё на эмуля...
May 16, 2019, 11:08 p.m.
BlinCT

Решил через indexOf сделать. Возвращает или номер позиции где нашел символ или строку или -1 если не найдено.

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB