10 мая 2019 г. 11:46

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

API

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

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
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

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
m
19 мая 2019 г. 1:49
mahhaki

Qt - Тест 001. Сигналы и слоты

  • Результат:78баллов,
  • Очки рейтинга2
S
17 мая 2019 г. 13:14
SunBro

Qt - Тест 001. Сигналы и слоты

  • Результат:42баллов,
  • Очки рейтинга-8
b
17 мая 2019 г. 4:18
banana

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

  • Результат:57баллов,
  • Очки рейтинга-2
Последние комментарии
20 мая 2019 г. 19:20
Евгений Легоцкой

Добрый день! Вы не думали разместить репозиторий проекта на GitHub?
P.
18 мая 2019 г. 14:03
PELMYACH .

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

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

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

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

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

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

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

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

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

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
Присоединяйтесь к нам
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB