2010-07-20 60 views
2

我需要創建一個mule服務,將數據發佈到期望名稱/值對(而不是xml)的Web服務,然後處理來自該服務的XML響應。我找不到一個關於如何爲http POST準備有效負載的好例子。如何使用名稱/值對創建一個Mule ESB服務到HTTP POST?

有人可以提供一些見解或例子嗎?

我至今是(我不如果需要「PathToTransformerClass」知道):

<service name="myService"> 
     <inbound> 
      <vm:inbound-endpoint path="myService.request" synchronous="true"> 
       <custom-transformer class="PathToTransformerClass" /> 
      </vm:inbound-endpoint> 
     </inbound> 
     <outbound> 
      <pass-through-router> 
       <http:outbound-endpoint address="URIofWebServiceToPostTo" method="POST" synchronous="true"> 
        <response-transformers> 
         <custom-transformer class="PathToClassToProcessTheResponse" /> 
        </response-transformers> 
       </http:outbound-endpoint> 
      </pass-through-router> 
     </outbound> 
    </service> 

回答

4

下可能會有所幫助:http://comments.gmane.org/gmane.comp.java.mule.user/29342

我找不到任何的例子要麼,但它看起來像內置的HTTP transformers

HTTP響應到對象的一種變壓器的 變換器將HTTP 響應轉換爲Mule消息。有效載荷可以是字符串,流或 字節數組。

http-response-to-string-transformer 將HTTP響應有效負載 轉換爲字符串。 響應的標題將保留在 消息中。

對象至http請求變壓器 該變壓器將創建使用當前消息 並在 當前消息中設置的任何HTTP標頭的有效 HTTP請求。

消息到HTTP的響應變壓器 該變壓器將創建使用當前 信息以及 當前消息中設置的任何HTTP標頭的有效 HTTP響應。

object-to-http-request-transformer可能是你最好的選擇;也許你可以創建一個鍵值對的映射,然後將其轉換爲URL編碼形式?不知道但希望這給你一些谷歌的東西。

0

你是詢問如何利用XML和創建鍵值對通過HTTP發送出去?爲此,您可以使用XLST轉換器,在XSL中將方法輸出設置爲文本。

0

1)設variables=<map><entry><string>idEvent_Type</string><string>1</string></entry></map>&options=user:admin

是地圖體後作爲HTTP請求。

2)URL編碼(例如,使用http://meyerweb.com/eric/tools/dencoder/

其產生:

variables%3D%3Cmap%3E%3Centry%3E%3Cstring%3EidEvent_Type%3C%2Fstring%3E%3Cstring%3E1%3C%2Fstring%3E%3C%2Fentry%3E%3C%2Fmap%3E%26options%3Duser%3Aadmin 

3)然後創建一個騾設置有效載荷變壓器:

<set-payload value="variables%3D%3Cmap%3E%3Centry%3E%3Cstring%3EidEvent_Type%3C%2Fstring%3E%3Cstring%3E1%3C%2Fstring%3E%3C%2Fentry%3E%3C%2Fmap%3E%26options%3Duser%3Aadmin 
" doc:name="Set playload"/> 

4)然後創建一個騾HTTP端點:

<http:outbound-endpoint exchange-pattern="request-response" host="..." port="..." path="..." user="..." password="..." contentType="application/x-www-form-urlencoded" doc:name="POSTHTTPRequest"/> 

它的工作原理

0

也許U可以嘗試使用Object-to-http-request-transformer,因爲此轉換器將使用當前收到的消息和當前消息上設置的任何HTTP標頭創建一個有效的HTTP請求。 從來沒有嘗試過,但這是唯一的變壓器,我可以在我的腦海後讀取你的查詢...希望它的作品..:D

+0

你可以發佈你的代碼,這將是有用的知道你的想法 – 2016-05-03 04:55:13

相關問題