【问题标题】:GET / POST using Clarion使用 Clarion 获取/发布
【发布时间】:2017-07-22 22:06:08
【问题描述】:

我有 Clarion 9 应用程序,我希望能够与 HTTP 服务器通信。我来自 PHP 背景。我不知道该怎么做。

我希望能够做什么:

  • 解析 JSON 数据并将 QUEUE 数据转换为 JSON [完成]

  • 有一个像“baseURL”这样的全局变量指向例如http://localhost.com[完成]

  • 调用诸如apiConnection.get('/users') 之类的函数将返回页面内容。 [我被困在这里]

  • apiConnection.post('/users', myQueueData) 将发布 myQueueData 内容。

我尝试通过从 LibMaker 读取它来使用 winhttp.dll,但它没有读取它。相反,我现在使用的是 wininet.dll,LibMaker 成功地为其创建了一个 .lib 文件。

我目前在 GitHub https://gist.github.com/ddur/34033ed1392cdce1253c 上使用此代码中的 PROTOTYPE 程序

我所做的是将它们包括在内:

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 的适当文档。

不想要付费解决方案

【问题讨论】:

    标签: clarion


    【解决方案1】:

    这取决于您拥有的 Clarion 版本。 从 v9 开始,他们添加了 ClaRunExt,它通过 .NET Interop 提供这种功能。

    来自帮助:

    使用 HTTP 或 HTTPS 下载网页或任何其他类型的文件。您还可以将表单数据发布到 Web 服务器。使用最常用的 HTTP 动词向 Web 服务器、REST Web 服务或标准 Web 服务发送 HTTP Web 请求(和接收响应)的非常简单的方法; POST、GET、PUT 和 DELETE。

    否则,在LibSrc\ 目录中搜索“http”,您将了解已经存在的内容。例如,abapi.inc 似乎为 wininet.lib 提供了一个包装器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2018-10-13
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多