[英]Error sending HTTP request. Message payload is of type: HashMap
我無法從Anypoint Studio中生成POST消息:
我要完成的工作是將POST發送給我們的Kykloud api終結點,其中包含3個鍵值對作為有效載荷,作為x-www-form-urlencoded內容。
這是當前的視覺設置:
(旁注:我知道在秘密視圖中存儲機密信息和登錄數據是一種不好的做法。稍后,我將嘗試弄清楚如何正確執行此操作)
適當的XML如下所示:
<flow name="LoginFlow">
<set-payload value="#[['ApiToken': 'xxxXXXxxxXXXxxxXXX']]" doc:name="Set ApiToken"/>
<set-payload value="#[['Email':'serv[at]someaddress.com']]" doc:name="Set Email"/>
<set-payload value="#[['Password':'VeryLongPenis']]" doc:name="Set Password"/>
<http:request config-ref="KyklouConnectorns" path="/api/v2/sessions?format=json" method="POST" doc:name="Login to Kykloud" port="80" />
<logger level="INFO" message="SessionId is #[message.payload.'SessionId']" doc:name="Logger"></logger>
</flow>
從理論上講,響應應該是其中帶有SessionId對象的JSON。
我實際上在POSTMAN中收到的是:
Error sending HTTP request. Message payload is of type: HashMap
顯然,我在定義有效負載時做錯了事,但是他們關於此的文檔尚不清楚如何正確使用:
HTTP請求主體Mule Message有效內容被轉換為字節數組,並作為HTTP請求的主體發送。 除非在以下情況下,否則始終執行此行為:
ule子消息的有效載荷是鍵和值的映射
郵件具有出站附件
生成具有Content-Type:application / x-form-urlencoded的請求正文每當消息有效負載是Map時,連接器都會自動生成帶有標頭Content-Type:
application/x-www-form-urlencoded
的HTTP請求。 有效負載中的映射的鍵和值在HTTP請求的主體中轉換為表單參數鍵和值。
您不需要為設置有效負載中的每個參數ei(username / pwd / api token)都設置一個設置有效負載,您只需要要發布的內容, 這種情況就不需要了 。 您需要在http請求中將(用戶名/ pwd / api令牌)設置為標頭。 除了上述三個之外,您可能還需要根據您的api將Content-type設置為application / json。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.