2

名前と値のペア(x​​mlではない)を期待するWebサービスにデータをPOSTするミュールサービスを作成してから、そのサービスからのXML応答を処理する必要があります。httpPOSTのペイロードを準備する方法の良い例が見つかりません。

誰かがいくつかの洞察や例を提供できますか?

私がこれまでに持っているのは(「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

4 に答える 4

4

以下が役立つ場合があります:http://comments.gmane.org/gmane.comp.java.mule.user/29342

例も見つかりませんが、組み込みのHTTPトランスフォーマー

http-response-to-object-transformerHTTP応答をMuleメッセージに変換するトランスフォーマー。ペイロードは、文字列、ストリーム、またはバイト配列の場合があります。

http-response-to-string-transformerHTTP応答ペイロードを文字列に変換します。応答のヘッダーはメッセージに保持されます。

object-to-http-request-transformerこのトランスフォーマーは、現在のメッセージと現在のメッセージに設定されているHTTPヘッダーを使用して有効なHTTPリクエストを作成します。

message-to-http-response-transformerこのトランスフォーマーは、現在のメッセージと現在のメッセージに設定されているHTTPヘッダーを使用して有効なHTTP応答を作成します。

object-to-http-request-transformerが最善の策かもしれません。おそらく、キーと値のペアのマップを作成し、それをURLエンコードされた形式に変換できますか?確かではありませんが、うまくいけば、これはあなたにグーグルにいくつかのことを与えるでしょう。

于 2010-07-31T03:54:52.857 に答える
0

XMLを取得し、HTTP経由で送信するキーと値のペアを作成する方法について質問していますか?そのために、XSLでメソッド出力をテキストに設定するXLSTトランスフォーマーを使用できます。

于 2010-07-29T20:41:12.033 に答える
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)次に、Muleセット-ペイロードトランスフォーマーを作成します。

<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)次に、MuleHTTPエンドポイントを作成します。

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

そしてそれは動作します

于 2013-03-18T16:35:53.560 に答える
0

このトランスフォーマーは、現在受信しているメッセージと現在のメッセージに設定されているHTTPヘッダーを使用して、有効なHTTPリクエストを作成するため、UはObject-to-http-request-transformerを使用して試すことができます。試したことはありませんが、クエリを読んだ後に頭に浮かぶ唯一のトランスフォーマーです...うまくいくことを願っています..:D

于 2016-05-03T04:35:53.023 に答える