【问题标题】:Using Intraweb to communicate with another website使用 Intraweb 与另一个网站通信
【发布时间】:2011-05-25 21:22:42
【问题描述】:

德尔福 5 专业版 内网 7

我有一个 Intraweb 应用程序,它使用带有 TDataSet 后代的“遗留”后端(B-Tree Filer)来处理数据访问。我的一切都很好。

但是,我现在有一些外部网站请求访问我的数据。我已经完成了简单的 HTML Form Posts and Gets 作为一种通信工具来处理与其他站点的一些集成,但是现在其中一个请求是要求我发回一个数据“表”。表格的每一行代表一个单独的记录。

我怎样才能用我目前的设置完成这个?我会返回一个 XML 文档并让另一个站点处理他们的“表格”吗?是否有我可以在 Delphi 中使用的等效数据集(如 VB 或 .Net 世界中的数据集定义),如果有,我将如何将其发送回发出请求的站点?

任何想法和建议将不胜感激。

【问题讨论】:

  • 请求者到底想要什么?一张“表”可能意味着很多事情,每一个都涉及一组不同的步骤。
  • 请求者也是用Delphi吗?如果您正在寻找可以与他们交换的标准“DataSet”类型,了解这一点很重要。
  • 如果不了解更多信息(@LachlanG 的 cmets +1),您似乎需要在两个应用程序之间定义数据交换接口。 XML 是一个不错的选择,JSON 也是如此。 Delphi 数据集可以很容易地用 XML 表示(尤其是来自 TClientDataset 组件)。

标签: delphi delphi-5 intraweb


【解决方案1】:

HTTP POST(返回给对方)是个好主意,使用异步操作允许在 HTTP 请求外部运行数据收集和转换。 (参见 Matt Biddulph 的演示文稿“Dopplr: It's made of messages”的幻灯片 4)

您的服务器将收到一个小的 HTTP GET 请求(类似于 /context/loaddata?table=TABLENAME&from=1000&records=100),存储此请求并立即返回一个带有简单 OK 的响应。

然后您的服务器将收集和准备(XML 或 JSON 编码的)表数据,最后将带有此文档的 HTTP POST 发送到另一方的 Web 服务器。如果此操作失败,则可以轻松重试,直到其他服务器回答 OK。

因此,如果数据准备和转换需要很长时间,则在您的服务器忙于获取和转换数据时,另一方不必等待(并且可能会遇到请求超时)。

【讨论】:

    【解决方案2】:

    首先,我想知道对方正在使用什么(PHP、Java 等),以及 SOAP/XML、JSON/REST 等是否已经“在他们知道如何做的事情列表中” ”。然后我会同意的。

    您可能需要为他们提供 SOAP 或 JSON 服务器服务,或其他一些自定义文档(HTML/XML/JSON 等),否则以他们可以阅读的格式向他们提供原始数据,并为他们提供 URL他们需要知道才能获取这些数据,您显然打算为他们提供这些数据,而不是为访问您网站的普通浏览器使用的公众提供。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多