libcurl for Clarion

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Обновил папку "Simple FTP Manager C10", спасибо за замечание.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7314
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libcurl for Clarion

Сообщение Игорь Столяров »

Спасибо. Теперь пример собирается и работает.

А можно спросить почему Вы добавили поле в группу, а не сделали объявление через базовый тип ?
Это ведь потенциальный источник подобных проблем в будущем. А примеры, они ведь как икона ...

Я (после Вашего тычка) сразу сделал объявление вот так и всё прекрасно заработало:

Код: Выделить всё

SSHSettings  GROUP(TSSHSettings),PRE(SSHSettings)
             END
Или я опять чего-то не понимаю ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Видимо, я предполагал размещать поля этой группы на окне, поэтому объявил явно. Исправлю.
С уважением, ДП
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libcurl for Clarion

Сообщение RaFaeL »

Игорь Столяров писал(а): 24 Август 2018, 12:10С Контуром (Диадок) я пробовал работать. В принципе - подключиться получается, но там навёрнутые структуры данных ...
Сегодня прислали запрос на интеграцию с Диадоком, буду смотреть ))
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libcurl for Clarion

Сообщение gopstop2007 »

Решил в первый раз попробовать libcurl. :)
Новая Почта, пример с использованием 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 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

в чём вопрос-то?
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а): 25 Октябрь 2018, 21:45 в чём вопрос-то?
на вышеуказанной странице, есть кнопка "отправить", после нажатия которой выводится содержимое ответа на запрос и он отличается от моего, вот оно:

Код: Выделить всё

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 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

gopstop2007 писал(а): 25 Октябрь 2018, 21:16"errors":["Data is invalid"]
Вот это по-моему ясно говорит, что с исходными данными что-то не так. Возможно, apiKey должен быть непустым (на сайте так и написано).
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libcurl for Clarion

Сообщение gopstop2007 »

Не требует ключа, на Postman проходит без проблем
Вложения
post_man.jpg
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

не знаю, жму Отправить и получаю "Your request is wrong. Refer to the documentation <a href="https://devcenter.novaposhta.ua">devcenter.novaposhta.ua</a>"
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а): 26 Октябрь 2018, 11:13не знаю, жму Отправить и получаю "Your request is wrong. Refer to the documentation <a href="https://devcenter.novaposhta.ua">devcenter.novaposhta.ua</a>"
Выберите на станице выше формат - json, чтобы Request URL стал таким
http://testapi.novaposhta.ua/v2.0/json/Address/searchSettlements/
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

А не знаю, может с кириллицей что-то не то. Задаю город kiev, ругается одинаково что в libcurl, что в postman.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Гы, заставил-таки её работать через юникод:

Код: Выделить всё

postparams                      STRING('{{"apiKey": "","modelName": "Address","calledMethod": "searchSettlements","methodProperties": {{"CityName": "\u043A\u0438\u0457\u0432","Limit": 5}}')
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а): 26 Октябрь 2018, 13:16Гы, заставил-таки её работать через юникод:
Спасибо огромное, без вашей помощи вряд ли решилось бы )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3130
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libcurl for Clarion

Сообщение Дед Пахом »

Так как ответ сервера тоже в юникоде, можешь попробовать разбирать json с помощью cJSON, она разруливает все эти "\u043A"
С уважением, ДП
Закрыто