使用Intraweb与其他网站进行通信

时间:2011-05-25 21:22:43

标签: delphi delphi-5 intraweb

Delphi 5 Pro Intraweb 7

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

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

如何使用我当前的设置完成此操作?我会用XML文档回复,让其他站点在其末尾处理“表”吗?我是否可以在Delphi中使用DataSet(如VB或.Net世界定义的数据集),如果是这样,我将如何将其发送回发出请求的网站?

非常感谢任何想法和建议。

2 个答案:

答案 0 :(得分:0)

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回答。

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

答案 1 :(得分:0)

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

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