10 мая 2019 г. 7: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

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
МБ
14 июля 2019 г. 17:57
Максим Беликов

C++ - Тест 005. Структуры и Классы

  • Результат:100баллов,
  • Очки рейтинга10
МБ
14 июля 2019 г. 17:52
Максим Беликов

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:90баллов,
  • Очки рейтинга8
МБ
14 июля 2019 г. 17:45
Максим Беликов

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

  • Результат:71баллов,
  • Очки рейтинга1
Последние комментарии
16 июля 2019 г. 15:15
Евгений Легоцкой

Конечно )) На самом деле не все читали Шлее... я например не читал ))
16 июля 2019 г. 15:05
IscanderChe

Так пример с QLocalServer и QLocalSocket я целиком переписал с QTcpSocket и QTcpServer из книги Шлее. Принципиальное отличие - где коннект ставить. :)) Разве что на это упор сделать. Но я могу...
16 июля 2019 г. 14:47
Евгений Легоцкой

Лучше API ))) Кстати, по использованию QLocalServer и QLocalSocket на сайте нет статей, было бы очень полезно и хорошо пошло бы в раздел Qt.
16 июля 2019 г. 12:36
IscanderChe

Да, прямой доступ не предполагается. Впрочем, можно, конечно, и напрямую. Всё равно всё локально происходит. Проблема в том, как донести сведения об изменениях в базе, которые вносит клиент, д...
b
16 июля 2019 г. 8:38
bbb116

спасибо, до smart pointer еще не дошел )
Сейчас обсуждают на форуме
17 июля 2019 г. 11:49
Михаиллл

В настройкак указан индификатор проекта и ключ. Осталось понять как использовать ключ. Попробовал вставить в этот запрос 'https://[PROJECT_ID].firebaseio/users/jack/name.json?access_to...
b
17 июля 2019 г. 9:01
bbb116

Вообщем работает только если делать setSceneRect только в конструкторе главного окна, если потом менять rect например при вставке картинки то появляются сколлы все как надо только области не р...
17 июля 2019 г. 5:54
Алексей Внуков

хочу не стандартный набор символов, а все ненужное убрать чтоб не мешало. для начала решил посмотреть как работает клава на родном примере, а он на телефоне не взлетел вот и начал разби...
17 июля 2019 г. 5:06
Михаиллл

Добрый день.Возможно вы сталкивались с облаками.Нужно из Qt создавать на облаке папки, записывать в папки файлы, читать и удалять с компьютера файлы.Возможно знаете, что лучше и проще испол...
Ищу работу?
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

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

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