Mule HTTP POST`form-data`转换为Map

时间:2014-11-11 07:01:48

标签: http http-post mule

我的mule应用程序正在接收一个HTTP Content-Typemultipart/form-data的HTTP POST请求。我试图使用自定义转换器但不知道如何访问参数,因为对象是类ContentLengthInputStream

  1. 如何访问表单参数?
  2. 我想将参数转换为地图。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以在流中使用#[message.inboundAttachments [payload],例如,发送http出站端点:

<message-properties-transformer doc:name="Message">
    <add-message-property key="Content-type" value="multipart/form-data/>
</message-properties-transformer>
<http:outbound-endpoint exchange-pattern="request-response" method="POST" doc:name="HTTP" address="http://localhost:9090" mimeType="multipart/form-data"/>

接收可以使用:

<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8090" connector-ref="HTTP_HTTPS" doc:name="HTTP" contentType="multipart/form-data"/>
<logger message="#[message.inboundAttachments[payload]]" level="ERROR" doc:name="Logger"/>

您可以使用变换器(AbstractMessageTransformer)并使用以下内容获取有效负载:

DataHandler inboundAttachment = message.getInboundAttachment("AttachmentName");