2009-12-12 55 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

相關問題