GET / POST 使用 Clarion
GET / POST using Clarion
我有 Clarion 9 应用程序,我希望能够与 HTTP 服务器通信。我来自 PHP 背景。我不知道该怎么做。
我希望能够做的事情:
解析JSON数据并将QUEUE数据转换为JSON[完成]
有一个像 'baseURL' 这样的全局变量,它指向例如http://localhost.com
[完成]
调用 apiConnection.get('/users')
等函数会 return 获取页面内容。 [我卡在这里了]
apiConnection.post('/users', myQueueData)
会 POST 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 使用的缓冲区总是 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 的包装。
我有 Clarion 9 应用程序,我希望能够与 HTTP 服务器通信。我来自 PHP 背景。我不知道该怎么做。
我希望能够做的事情:
解析JSON数据并将QUEUE数据转换为JSON[完成]
有一个像 'baseURL' 这样的全局变量,它指向例如
http://localhost.com
[完成]调用
apiConnection.get('/users')
等函数会 return 获取页面内容。 [我卡在这里了]apiConnection.post('/users', myQueueData)
会 POST 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 使用的缓冲区总是 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 的包装。