ファイルが 1 つの要求から受信される multipart/form-data HTTP 要求を作成する必要があります。別の要求からのいくつかの追加のフォーム データ値です。例:
1) HTTP リスナーが添付ファイルとしてファイルを受け取る
2) HTTP リクエストを 3 つ以上の REST API に送信し、値をプロパティ変数に格納する
3) 手順 1 で受け取ったファイルと手順 2 で受け取った値を使用して HTTP リクエストを作成する
ステップ 1 でファイルを受け取ったら、それをプロパティに保存します。また、後続のリクエストからの値を別のプロパティに保存します。
ここで、手順 3 でこれらのプロパティから HTTP POST 要求を作成すると、フィールドもファイルもサーバーで値を受け取りません。
私の流れ:
<http:request-config name="HTTP_poster_Configuration" host="localhost" port="53536" doc:name="HTTP Poster Configuration"/>
<http:request-config name="HTTP_Request_Configuration" host="1.1.1.1" basePath="/xyz" port="8080" doc:name="HTTP Request Configuration"/>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="getticketFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<set-session-variable variableName="var1" value="NA" doc:name="Session Variable" />
<set-variable variableName="var2" value="P11335577" doc:name="Flow name Variable" />
<set-variable variableName="var3" value="Goku" doc:name="Flow title Variable" />
<set-variable variableName="var4" value="Saiyan Dead but Alive" doc:name="Flow description Variable" />
<set-variable variableName="uploadFile" value="#[message.inboundAttachments['file'].dataSource.content]" doc:name="Flow type Variable" />
.................Sending requests to other services
...................Setting property Variables
<!-- Finally -->
<http:request config-ref="HTTP_poster_Configuration" path="/handler" method="POST" doc:name="Uploading_Doc" >
<http:request-builder>
<http:query-param paramName="filedata" value="#[flowVars ['uploadFile']]"/>
<http:query-param paramName="sid" value="#[flowVars ['var1']]"/>
<http:query-param paramName="cid" value="#[flowVars ['var2']]"/>
<http:query-param paramName="udi" value="#[flowVars ['var3']]"/>
<http:header headerName="Content-Type" value="multipart/form-data"/>
</http:request-builder>
</http:request>
</flow>
</mule>