我在 D10.1 Berlin 编写了一个 VCL 应用程序。 它使用DataSnap提供一些REST API来连接外部 将组件写入我的应用程序。这有效,我也可以使用 通过浏览器 URL 输入或通过 CURL 的 API。
现在我想创建一个小型 HTML 网站来演示一些人 以某种简单的方式体现 Web 服务的价值。我编写了一个简单的表单来使用我的一项服务,但我未能使其正常工作,因为 DataSnap 服务看起来没有查询参数,但在我的例子中它需要 2 个参数(一个字符串和一个数字)。我知道DataSnap向导可以生成一个完整的网站,但我担心这会生成这么多 它将隐藏我实际上想要通过下面提供的简单示例展示的内容。
我的电话是这样的:
http://127.0.0.1:1024/datasnap/Tmyapp/UpdateMyValue/1%3A1/500
这是我的简单 HTML 页面的简单形式部分:
<form action="http://127.0.0.1:1024/datasnap/Tmyapp/UpdateMyValue"
method="post">
<table>
<tr>
<td width=50%>Address</td>
<td width=50%><input type="text" name="MyAddress" value="1:1"
maxlength="5" required></td>
</tr>
<tr>
<td width=50%>Value</td>
<td width=50%><input type="number" name="MyValue" value="300"
min="0" max="2000" required></td>
</tr>
</table>
<p>
</p>
<input type="submit" value="Setzen">
</form>
有什么问题吗,或者这样不行吗?
DataSnap 可以使用 GET 方法检索参数,例如:
http://127.0.0.1:1024/datasnap/Tmyapp/{method}/?param1=value1
在原来的例子中,表单动作应该改为:
<form action="http://127.0.0.1:1024/datasnap/Tmyapp/MyValue/"
method="GET">
但是,发布数据时,DataSnap 只接受 JSON 格式(Content-Type:application/json,Accept:application/json)。
更多详情可以参考我的文章:Form API。