GET/POST с использованием Clarion

У меня есть приложение Clarion 9, которое я хочу использовать для связи с HTTP-серверами. Я родом из PHP. У меня 0 идей, что делать.

Что я хочу уметь:

  • Анализ данных JSON и преобразование данных QUEUE в JSON [Готово]

  • Имейте глобальную переменную, такую ​​​​как «baseURL», которая указывает, например, на. http://localhost.com [Готово]

  • Функции вызова таких apiConnection.get('/users') вернули бы мне содержимое страницы. [Я застрял здесь]

  • apiConnection.post('/users', myQueueData) будет размещать содержимое myQueueData.

Я попытался использовать winhttp.dll, прочитав его из LibMaker, но он не прочитал его. Вместо этого я теперь использую wininet.dll, для которого LibMaker успешно создал файл .lib.

В настоящее время я использую процедуры PROTOTYPE из этого кода на GitHub https://gist.github.com/ddur/34033ed1392cdce1253c

Что я сделал, так это включил их, например:

SimpleApi.clw

PROGRAM
     INCLUDE('winInet.equ')
      ApiLog    QUEUE, PRE(log)
      LogTitle  STRING(10)
      LogMessage    STRING(50)
     END

     MAP
      INCLUDE('winInetMap.clw')
     END

     INCLUDE('equates.clw'),ONCE 
     INCLUDE('DreamyConnection.inc'),ONCE

     ApiConnection     DreamyConnection

CODE

    IF DreamyConnection.initiateConnection('http://localhost')
       ELSE
          log:LogTitle = 'Info'
          log:LogMessage = 'Failed'
          ADD(apiLog)
    END

Но буфер, который использует winInet, всегда возвращает 0.

Я создал репозиторий GitHub https://github.com/spacemudd/clarion-api с весь код для просмотра.

Я действительно потерялся в этом, потому что я не могу найти надлежащую документацию Clarion.

Мне не нужно платное решение.


person Shafiq al-Shaar    schedule 22.07.2017    source источник


Ответы (1)


Это зависит от того, какая у вас версия Clarion. Начиная примерно с версии 9 они добавили ClaRunExt, который предоставляет такие функции через .NET Interop.

Из справки:

Используйте HTTP или HTTPS для загрузки веб-страниц или файлов любого другого типа. Вы также можете отправлять данные формы на веб-серверы. Очень простой способ отправки веб-запросов HTTP (и получения ответов) на веб-серверы, веб-службы REST или стандартные веб-службы с наиболее часто используемыми глаголами HTTP; POST, GET, PUT и DELETE.

В противном случае найдите в каталоге LibSrc\ «http», и вы получите представление о том, что там уже есть. abapi.inc, например, предоставляет оболочку для wininet.lib.

person brahnp    schedule 24.07.2017