GET / POST 使用 Clarion

GET / POST using Clarion

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

我希望能够做的事情:

我尝试通过从 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 使用的缓冲区总是 returns 0.

我创建了一个 GitHub 存储库 https://github.com/spacemudd/clarion-api,其中包含所有要查看的代码。

我真的迷失了,因为我找不到 Clarion 的正确文档。

不想要付费解决方案

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

来自帮助:

Use HTTP or HTTPS to download web pages, or any other type of file. You can also post form data to web servers. Very easy way to send HTTP web requests (and receive responses) to Web Servers, REST Web Services, or standard Web Services, with the most commonly used HTTP verbs; POST, GET, PUT, and DELETE.

否则,在 LibSrc\ 目录中搜索 "http",您将了解那里已有的内容。 abapi.inc 例如,似乎提供了 wininet.lib 的包装。