libcurl for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
libcurl for Clarion
Спасибо. Теперь пример собирается и работает.
А можно спросить почему Вы добавили поле в группу, а не сделали объявление через базовый тип ?
Это ведь потенциальный источник подобных проблем в будущем. А примеры, они ведь как икона ...
Я (после Вашего тычка) сразу сделал объявление вот так и всё прекрасно заработало:
Или я опять чего-то не понимаю ?
А можно спросить почему Вы добавили поле в группу, а не сделали объявление через базовый тип ?
Это ведь потенциальный источник подобных проблем в будущем. А примеры, они ведь как икона ...
Я (после Вашего тычка) сразу сделал объявление вот так и всё прекрасно заработало:
Код: Выделить всё
SSHSettings GROUP(TSSHSettings),PRE(SSHSettings)
END
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Видимо, я предполагал размещать поля этой группы на окне, поэтому объявил явно. Исправлю.
С уважением, ДП
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libcurl for Clarion
Сегодня прислали запрос на интеграцию с Диадоком, буду смотреть ))Игорь Столяров писал(а): ↑24 Август 2018, 12:10С Контуром (Диадок) я пробовал работать. В принципе - подключиться получается, но там навёрнутые структуры данных ...
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Решил в первый раз попробовать libcurl.
Новая Почта, пример с использованием api (JSON) на странице, https://devcenter.novaposhta.ua/docs/se ... 67/console
Содержимое ответа с сервера
Запрос проходит без ошибок, но данных по запросу нет.
Новая Почта, пример с использованием api (JSON) на странице, https://devcenter.novaposhta.ua/docs/se ... 67/console
Код: Выделить всё
curl TCurlClass
host STRING('http://testapi.novaposhta.ua/v2.0/json/Address/searchSettlements/')
postparams STRING('{{"apiKey": "","modelName": "Address","calledMethod": "searchSettlements","methodProperties": {{"CityName": "київ","Limit": 5}}')
res CURLcode, AUTO
respBuffer STRING(32768) !big enuff to hold received response
CODE
curl.Init()
curl.AddHttpHeader('Content-Type: application/json') !- or 'Content-Type: text/json'
curl.SetHttpHeaders()
curl.SetCustomRequest('POST')
curl.SetHttpGET(TRUE)
curl.SetSSLVerifyHost(false)
curl.SetSSLVerifyPeer(FALSE)
! set ssl version (see CURL_SSLVERSION_xxx constants)
curl.SetSSLVersion(CURL_SSLVERSION_DEFAULT)
res = curl.SendRequest(host, PostParams, 'rest.txt')
IF res = CURLE_OK
! OK
ELSIF res = -1
MESSAGE('Cannot open local file', 'libcurl', ICON:Exclamation)
ELSE
MESSAGE('SendRequest failed: '& curl.StrError(res), 'libcurl', ICON:Exclamation)
END
Код: Выделить всё
{"success":false,"data":[],"errors":["Data is invalid"],"warnings":[],"info":[],"messageCodes":[],"errorCodes":[],"warningCodes":[],"infoCodes":[]}
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
на вышеуказанной странице, есть кнопка "отправить", после нажатия которой выводится содержимое ответа на запрос и он отличается от моего, вот оно:
Код: Выделить всё
Pragma: no-cache
Transfer-Encoding: chunked
Vary: Accept-Encoding
Cache-Control: no-store, must-revalidate, no-cache, post-check=0, pre-check=0
Date: Thu, 25 Oct 2018 17:35:07 GMT
Set-Cookie: PHPSESSID=7msaf4scj870vb2lsse2euhcg0; path=/
Content-Type: application/json
Expires: Thu, 19 Nov 1981 08:52:00 GMT
{
"success": true,
"data": [{
"TotalCount": 9,
"Addresses": [{
"Present": "\u043c. \u041a\u0438\u0457\u0432, \u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0430 \u043e\u0431\u043b.",
"Warehouses": 471,
"MainDescription": "\u041a\u0438\u0457\u0432",
"Area": "\u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0430",
"Region": "",
"SettlementTypeCode": "\u043c.",
"Ref": "e718a680-4b33-11e4-ab6d-005056801329",
"DeliveryCity": "8d5a980d-391c-11dd-90d9-001a92567626",
"StreetsAvailability": true,
"ParentRegionTypes": "\u043e\u0431\u043b\u0430\u0441\u0442\u044c",
"ParentRegionCode": "\u043e\u0431\u043b.",
"RegionTypes": "",
"RegionTypesCode": ""
}, {
"Present": "\u0441. \u041a\u0438\u0457\u0432, \u0414\u043e\u043c\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0440-\u043d, \u041c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0430 \u043e\u0431\u043b.",
"Warehouses": 0,
"MainDescription": "\u041a\u0438\u0457\u0432",
"Area": "\u041c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0430",
"Region": "\u0414\u043e\u043c\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u0438\u0439",
"SettlementTypeCode": "\u0441.",
"Ref": "0db2df4b-4b3a-11e4-ab6d-005056801329",
"DeliveryCity": "06f8795a-4079-11de-b509-001d92f78698",
"StreetsAvailability": false,
"ParentRegionTypes": "\u043e\u0431\u043b\u0430\u0441\u0442\u044c",
"ParentRegionCode": "\u043e\u0431\u043b.",
"RegionTypes": "\u0440\u0430\u0439\u043e\u043d",
"RegionTypesCode": "\u0440-\u043d"
}, {
"Present": "\u0441. \u041a\u0438\u0457\u0432\u0435\u0446\u044c, \u041c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0438\u0439 \u0440-\u043d, \u041b\u044c\u0432\u0456\u0432\u0441\u044c\u043a\u0430 \u043e\u0431\u043b.",
"Warehouses": 0,
"MainDescription": "\u041a\u0438\u0457\u0432\u0435\u0446\u044c",
"Area": "\u041b\u044c\u0432\u0456\u0432\u0441\u044c\u043a\u0430",
"Region": "\u041c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0438\u0439",
"SettlementTypeCode": "\u0441.",
"Ref": "0df25497-4b3a-11e4-ab6d-005056801329",
"DeliveryCity": "acecfca8-1488-11df-8caf-000c2965ae0e",
"StreetsAvailability": false,
"ParentRegionTypes": "\u043e\u0431\u043b\u0430\u0441\u0442\u044c",
"ParentRegionCode": "\u043e\u0431\u043b.",
"RegionTypes": "\u0440\u0430\u0439\u043e\u043d",
"RegionTypesCode": "\u0440-\u043d"
}, {
"Present": "\u0441. \u041a\u0438\u0457\u0432\u043a\u0430, \u0413\u043e\u043b\u043e\u043f\u0440\u0438\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440-\u043d, \u0425\u0435\u0440\u0441\u043e\u043d\u0441\u044c\u043a\u0430 \u043e\u0431\u043b.",
"Warehouses": 0,
"MainDescription": "\u041a\u0438\u0457\u0432\u043a\u0430",
"Area": "\u0425\u0435\u0440\u0441\u043e\u043d\u0441\u044c\u043a\u0430",
"Region": "\u0413\u043e\u043b\u043e\u043f\u0440\u0438\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439",
"SettlementTypeCode": "\u0441.",
"Ref": "0dd153b3-4b3a-11e4-ab6d-005056801329",
"DeliveryCity": "db5c88e7-391c-11dd-90d9-001a92567626",
"StreetsAvailability": false,
"ParentRegionTypes": "\u043e\u0431\u043b\u0430\u0441\u0442\u044c",
"ParentRegionCode": "\u043e\u0431\u043b.",
"RegionTypes": "\u0440\u0430\u0439\u043e\u043d",
"RegionTypesCode": "\u0440-\u043d"
}, {
"Present": "\u0441. \u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0435, \u041d\u043e\u0432\u043e\u043c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0438\u0439 \u0440-\u043d, \u0417\u0430\u043f\u043e\u0440\u0456\u0437\u044c\u043a\u0430 \u043e\u0431\u043b.",
"Warehouses": 0,
"MainDescription": "\u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0435",
"Area": "\u0417\u0430\u043f\u043e\u0440\u0456\u0437\u044c\u043a\u0430",
"Region": "\u041d\u043e\u0432\u043e\u043c\u0438\u043a\u043e\u043b\u0430\u0457\u0432\u0441\u044c\u043a\u0438\u0439",
"SettlementTypeCode": "\u0441.",
"Ref": "0e40bf5a-4b3a-11e4-ab6d-005056801329",
"DeliveryCity": "cfbeaca4-4063-11de-b509-001d92f78698",
"StreetsAvailability": false,
"ParentRegionTypes": "\u043e\u0431\u043b\u0430\u0441\u0442\u044c",
"ParentRegionCode": "\u043e\u0431\u043b.",
"RegionTypes": "\u0440\u0430\u0439\u043e\u043d",
"RegionTypesCode": "\u0440-\u043d"
}]
}],
"errors": [],
"warnings": [],
"info": [],
"messageCodes": [],
"errorCodes": [],
"warningCodes": [],
"infoCodes": []
}
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Вот это по-моему ясно говорит, что с исходными данными что-то не так. Возможно, apiKey должен быть непустым (на сайте так и написано).gopstop2007 писал(а): ↑25 Октябрь 2018, 21:16"errors":["Data is invalid"]
С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Не требует ключа, на Postman проходит без проблем
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
не знаю, жму Отправить и получаю "Your request is wrong. Refer to the documentation <a href="https://devcenter.novaposhta.ua">devcenter.novaposhta.ua</a>"
С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Выберите на станице выше формат - json, чтобы Request URL стал таким
http://testapi.novaposhta.ua/v2.0/json/Address/searchSettlements/
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
А не знаю, может с кириллицей что-то не то. Задаю город kiev, ругается одинаково что в libcurl, что в postman.
С уважением, ДП
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Гы, заставил-таки её работать через юникод:
Код: Выделить всё
postparams STRING('{{"apiKey": "","modelName": "Address","calledMethod": "searchSettlements","methodProperties": {{"CityName": "\u043A\u0438\u0457\u0432","Limit": 5}}')
С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Спасибо огромное, без вашей помощи вряд ли решилось бы )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
libcurl for Clarion
Так как ответ сервера тоже в юникоде, можешь попробовать разбирать json с помощью cJSON, она разруливает все эти "\u043A"
С уважением, ДП