如何用 Delphi Win32 编写 SOAP 1.2 客户端的最佳方式
Posted
技术标签:
【中文标题】如何用 Delphi Win32 编写 SOAP 1.2 客户端的最佳方式【英文标题】:How is the best way to write a SOAP 1.2 Client with Delphi Win32 【发布时间】:2010-09-28 11:13:36 【问题描述】:到目前为止,没有任何 Delphi 版本支持SOAP 1.2 客户端或服务器。
我已经尝试了几个星期让它工作,但每次出现新问题时,使用 VS/C# 我可以做同样的事情,并在 3 天内完成工作,但我需要使用 Delphi 2009。
“我使用 Rem Objects SDK 编写了一个新版本”,但结果并不比我使用 Delphi SOAP 库的结果好。
但我想知道我还有什么选择,哪个库/组件完全支持 SOAP 1.2?
我发现了一条来自 Bruneau 的消息,建议使用 Pocket SOAP http://www.pocketsoap.com/pocketsoap/ 我不知道这是怎么回事,我会调查一下,看看我能做些什么。
【问题讨论】:
> "我已经尝试了几个星期来让它工作,但是每次遇到新问题时,使用 VS/C# 我可以做同样的事情,并在 3 天内完成工作,但我需要做德尔福 2009。”为什么你需要这样做?使用正确的工具完成工作的想法发生了什么? 这是一个用 Delphi 编写的更大项目的一小部分。 你不能用更合适的工具创建一个 DLL / COM 对象 / 任何东西,并与你的 Delphi 代码接口? 它是一个选项,但界面可以随时更改,因此更好的方法是使用第 3 方解决方案来仅将源代码保留在 Delphi 下,而不必再拥有一个工具来维护 1 DLL/COM 对象。 【参考方案1】:记得在 codegear 的 QC 上投票支持 SOAP 1.2:
http://qc.codegear.com/wc/qcmain.aspx?d=66864
目前,它被选为 Delphi 排名第二的报告(在 64 位支持之后)。我真的很确定 CodeGear 不会忽视这一点。
【讨论】:
我在那里投票,但现在我必须解决我的问题,这就是我寻找第 3 方解决方案的原因。 这不再是真的。用于 clents 的 Soap 1.2 已在 Delphi 2010 中实施,请参阅下面 Bruce McGee 的回答。【参考方案2】:跟进。 This has been implemented in Delphi 2010.
【讨论】:
【参考方案3】:我建议你深入挖掘源代码。使用 Delphi 7,我可以通过将 SOAP 代码复制到我的应用程序文件夹并仔细编辑它来添加各种附加功能。在一种情况下,我做了一些字符串操作来调整传入的 SOAP 数据包,使其与 Delphi 的工作方式一致。我还没有用 RemObjects 做这个,但是你也得到了它的源代码。此外,他们还有活跃的新闻组,您可以在上面提问。
【讨论】:
到目前为止,似乎是唯一的办法。【参考方案4】:在某些情况下,我发现在 C# 和 VS 中编写代理 SOAP 服务要容易得多,并通过简化的服务描述 (WSDL) 从 Delphi 中使用它。从长远来看,它是最有效的解决方案,在稳定性或性能方面没有任何问题。 Delphi 中的 SOAP 支持并不是它的亮点之一。
【讨论】:
最近的版本变得更好了。以上是关于如何用 Delphi Win32 编写 SOAP 1.2 客户端的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章