我有Clarion 9应用程序,我希望能够与HTTP服务器通信。我来自PHP背景。我不知道该怎么做。
我想要做的是:
http://localhost.com DoneapiConnection.get('/users')将返回页面的内容。我被困在这里apiConnection.post('/users', myQueueData)会发布myQueueData内容。我尝试通过从winhttp.dll中读取它来使用LibMaker,但它没有阅读它。相反,我现在使用的是wininet.dll,LibMaker成功地为它创建了一个.lib文件。
我目前正在使用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,其中包含所有要查看的代码。
我真的迷上了这个,因为我找不到克拉里恩的适当文档。
I不想要付费解决方案。
发布于 2017-07-24 11:38:01
这在一定程度上取决于你有哪种版本的克拉里安。从v9开始,他们添加了ClaRunExt,它通过.NET互操作提供这种功能。
从帮助中:
使用HTTP或HTTPS下载网页或任何其他类型的文件。您还可以将表单数据发布到web服务器。向Web服务器、REST Web服务或标准Web服务发送HTTP web请求(并接收响应)非常简单,最常用的HTTP谓词是POST、GET、PUT和DELETE。
否则,在LibSrc\目录中搜索"http“,您将了解已经存在的内容。例如,abapi.inc似乎为wininet.lib提供了一个包装器。
https://stackoverflow.com/questions/45259654
复制相似问题