Xml delphi5中的Web服务

Xml delphi5中的Web服务,xml,web-services,delphi,Xml,Web Services,Delphi,通过使用Delphi5,我可以调用在VB.Net中开发的web服务中的函数,该函数包含一些参数并返回XML吗?如果是,那么我将使用哪些组件来调用web服务函数以及该函数将返回的XML?我们正在解决类似的问题。然而,我们对这个问题的解决方案可能不是你想要的 我们有一组相当复杂的web服务,我们必须使用这些服务,并且需要进行一些配置和调试。因此,为了不影响系统的Delphi端的开发(发布周期很长),我们创建了一系列钩子,将调用转移到DLL,也在Delphi中 这个DLL有一个非常简单的任务:转发从函

通过使用Delphi5,我可以调用在VB.Net中开发的web服务中的函数,该函数包含一些参数并返回XML吗?如果是,那么我将使用哪些组件来调用web服务函数以及该函数将返回的XML?

我们正在解决类似的问题。然而,我们对这个问题的解决方案可能不是你想要的

我们有一组相当复杂的web服务,我们必须使用这些服务,并且需要进行一些配置和调试。因此,为了不影响系统的Delphi端的开发(发布周期很长),我们创建了一系列钩子,将调用转移到DLL,也在Delphi中

这个DLL有一个非常简单的任务:转发从函数调用接收到的信息,对其进行一点格式化,并将其推送到一个几乎裸露的TCP套接字

从那里,信息进入一个接口引擎,在那里我们可以在调用服务之前进行映射和其他转换。实际的web服务包装和调用是在引擎本机环境(Java)中完成的

使用套接字连接来调用引擎可以提供更简单、更轻巧的部署环境,我们不必担心com/dcom或jni

这听起来相当复杂,但事实证明它简化了很多

另一种选择是在C#中开发一个COM DLL来完成web端的繁重工作,并将其连接到delphi。这也是可能的,根据您的部署环境,这可能是一个更简单的解决方案。我们选择不走这条路,因为我们的设置非常复杂,既有厚客户端、各种性质的远程桌面,又有非常紧密的IT结构。要求打开一台机器的web访问并从不同的客户机获取该服务器的内部套接字比要求打开每个客户机到internet更容易

否则,在纯Delphi5中,访问web服务并不是一件有趣的事情,所以我在这里的第一反应是使用一个更为WS-friendly的平台,并尝试通过某种桥(COM、JNI、stdcall DLL等)来集成它们


无论如何,我希望这能有所帮助。

我自己没有使用D5消费web服务的经验,但我的第一反应是为web访问设置一个internet组件,并使用DOM库(ms xml,sax)来处理xml

话虽如此,您可能很难找到仍然支持D5的组件。我在一个D5应用程序中使用Indy internet组件,并且有一个特定的Indy SOAP库用于消费web服务

另一个可能有帮助的互联网库是Francois Piette的互联网组件套件(ICS):

关于xml处理,《Delphi开发人员xml指南》中的这一页应该会帮助您:我认为web服务(SOAP)支持是在Delphi 6中引入的。
升级到更新的Delphi版本肯定是最简单的方法

如果不能,则需要一个实现SOAP支持的外部库

您可以一直使用HTTP协议(本质上,SOAP web服务是通过HTTP或HTTPS发送特定形式的XML),但这需要大量的工作

您可能很幸运:它支持,但我不确定它是否支持Delphi5

打电话或发电子邮件给对方:他们真的很有帮助,你可能会很幸运


--jeroen

ReObject不支持Delphi 5。(德尔福7是撰写本文时最古老的。)