2009-12-12 88 views
2

是否有推荐的方法/教程,其中显示了如何使用不带THTTPRio的Delphi创建和处理纯SOAP请求,例如,如果我想实现SOAP over JMSSOAP over AMQPSOAP over SMTP如何在不使用HTTP的情况下在Delphi中创建和处理SOAP请求?

简化的代码实例:

// create a SOAP request (client side) 
RequestXML := Service.Add(Arg1, Arg2); 

此代码将产生与用于与所述参数ARG1和Arg2所得的“添加”方法调用SOAP消息的XML。

// process a SOAP request (server side) 
ResponseXML := Service.ProcessRequest(RequestXML); 

此代码将采用SOAP请求XML并调用该方法。方法调用的结果将被封装为SOAP响应并准备发送给客户端。

回答

4

查看TLinkedRIO类(http://shenoyatwork.blogspot.com/2004/10/using-tlinkedrio.html)。它创建SOAP请求并将其写入文件。由于TLinkedRIO用于测试目的,它还包含代码来查找实现该服务的(Delphi)服务器,并让服务器从该文件读取请求,处理该请求并将响应写入另一个文件。呼叫者(客户端)然后从响应文件中读取。如果您想使用不同的交通工具,则无需执行此操作:响应将来自真正的服务。但是,这是一个很好的例子,可以显示XML序列化与传输是如何分离的。

PS:SOAP序列化基本上期望IWebNode满足其传输需求。即该接口的Execute方法。您向何处发送请求流以及如何/从何处获取响应流取决于传输实施。

+0

+1谢谢你的链接,我会测试它,看看我能得到多少 – mjn 2009-12-16 14:02:51

相关问题