我從Anypoint Studio中生成POST消息出現故障:發送HTTP請求時出錯。消息負載的類型爲:HashMap的
我試圖做到的是一個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>
理論上的反應應該是一些JSON與塞西onId對象。
我所實際接收的郵遞員:
Error sending HTTP request. Message payload is of type: HashMap
很顯然,我做錯了什麼定義我的有效載荷,但他們對這個文檔不是如何做正確的方式明確:
HTTP請求正文Mule消息負載被轉換爲字節 數組並作爲HTTP請求的主體發送。這種行爲進行 了始終,除了在以下情形:
騾子信息的有效載荷是一個Map鍵和值
消息已經傳出附件
生成與 內容 - 請求正文類型:application/x-form-urlencoded只要消息 有效負載是Map,連接器就會自動生成HTTP 請求,並且標頭爲 Content-Type:
application/x-www-form-urlencoded
。有效載荷中的映射的鍵和值 被轉換爲HTTP請求的主體中的形式參數鍵和值。
它表示有效載荷是鍵和值的映射。你有一個HashMap。儘管它們相似,但它們並不完全相同。在運行你的代碼發送消息之前,把你的散列表轉換成一個Map map2 = myHashMap;' –
MattCorr
@MattCorr我應該說,這是我第一天使用這個產品,我不知道如何在xml中執行此操作。 – Marco