天天看点

mule servlet 针对form-data传输的参数转换问题

    mule 在使用servlet做监听时候,收到请求参数是form-data格式的参数,解析不了接受到的参数,使用message.getPayload打印出来是这样。

mule servlet 针对form-data传输的参数转换问题

WebKitFormBoundary,这是什么鬼! 然后断点看,看到payload是这样的。

mule servlet 针对form-data传输的参数转换问题

没见过啊。 我用HTTP做监听的时候就没有这个问题,接受到的参数直接是key=value&这种类型。 所以我想应该是HTTP对参数做了处理,而servlet没有。

于是在官网找到了servlet配置,发现servlet可以配置子节点做参数转换。 OK,就这样找到了解决方案,如下:

<servlet:inbound-endpoint path="/union/synchronize" responseTimeout="10000" doc:name="Servlet" >
     <servlet:http-request-to-parameter-map></servlet:http-request-to-parameter-map>
</servlet:inbound-endpoint>
           

这样接受到的参数直接转换成了Map。