天天看點

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。