通过简单的 Web 表单访问 DataSnap 提供的 Web 服务

问题描述 投票:0回答:1

我在 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> 

有什么问题吗,或者这样不行吗?

web-services delphi forms datasnap
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.