Страница 20 из 30

libcurl for Clarion

Добавлено: 03 Октябрь 2018, 10:29
Дед Пахом
Обновил папку "Simple FTP Manager C10", спасибо за замечание.

libcurl for Clarion

Добавлено: 03 Октябрь 2018, 10:39
Игорь Столяров
Спасибо. Теперь пример собирается и работает.

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

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

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

SSHSettings  GROUP(TSSHSettings),PRE(SSHSettings)
             END
Или я опять чего-то не понимаю ? ;)

libcurl for Clarion

Добавлено: 03 Октябрь 2018, 10:50
Дед Пахом
Видимо, я предполагал размещать поля этой группы на окне, поэтому объявил явно. Исправлю.

libcurl for Clarion

Добавлено: 10 Октябрь 2018, 23:19
RaFaeL
Игорь Столяров писал(а): 24 Август 2018, 12:10С Контуром (Диадок) я пробовал работать. В принципе - подключиться получается, но там навёрнутые структуры данных ...
Сегодня прислали запрос на интеграцию с Диадоком, буду смотреть ))

libcurl for Clarion

Добавлено: 25 Октябрь 2018, 21:16
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":[]}
Запрос проходит без ошибок, но данных по запросу нет. :(

libcurl for Clarion

Добавлено: 25 Октябрь 2018, 21:45
Дед Пахом
в чём вопрос-то?

libcurl for Clarion

Добавлено: 25 Октябрь 2018, 23:35
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": []
}

libcurl for Clarion

Добавлено: 25 Октябрь 2018, 23:41
Дед Пахом
gopstop2007 писал(а): 25 Октябрь 2018, 21:16"errors":["Data is invalid"]
Вот это по-моему ясно говорит, что с исходными данными что-то не так. Возможно, apiKey должен быть непустым (на сайте так и написано).

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 11:03
gopstop2007
Не требует ключа, на Postman проходит без проблем

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 11:13
Дед Пахом
не знаю, жму Отправить и получаю "Your request is wrong. Refer to the documentation <a href="https://devcenter.novaposhta.ua">devcenter.novaposhta.ua</a>"

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 11:19
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/

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 12:05
Дед Пахом
А не знаю, может с кириллицей что-то не то. Задаю город kiev, ругается одинаково что в libcurl, что в postman.

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 13:16
Дед Пахом
Гы, заставил-таки её работать через юникод:

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

postparams                      STRING('{{"apiKey": "","modelName": "Address","calledMethod": "searchSettlements","methodProperties": {{"CityName": "\u043A\u0438\u0457\u0432","Limit": 5}}')

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 13:45
gopstop2007
Дед Пахом писал(а): 26 Октябрь 2018, 13:16Гы, заставил-таки её работать через юникод:
Спасибо огромное, без вашей помощи вряд ли решилось бы )

libcurl for Clarion

Добавлено: 26 Октябрь 2018, 13:52
Дед Пахом
Так как ответ сервера тоже в юникоде, можешь попробовать разбирать json с помощью cJSON, она разруливает все эти "\u043A"