2016-07-13 40 views
0

我與嘗試的代碼是: -無法使用elixir進行HTTP Post請求?

response = HTTPotion.post(url, [body: "{channel: \"#bot\", username: \"watson\", text: \"test\"}"]) 

我得到的迴應是: -

%HTTPotion.Response{body: "invalid_payload",......, status_code: 400} 
+2

你做了一個帖子請求,它返回。問題在於服務器響應「不良請求」。您可能需要向服務器發送其他內容,但這不是elixir的問題,而是消息內容。 – tkowal

+0

這是示例捲曲請求的工作原理: - curl -X POST url -d'{「channel」:「bot」,「username」:「ab」,「text」:「test」}' –

+0

我想要的知道是知道發送請求中的數據參數 –

回答

2

你犯了一個成功的請求,但身體是錯誤的。在JSON應該有周圍的字段名語錄:

[body: "{\"channel\": \"#{bot}\", \"username\": \"watson\", \"text\": \"test\"}"] 

也爲字符串插補語法#{variable_name}例如:

iex(1)> bot = "mybot" 
iex(2)> "#{bot}" 

手動編碼JSON是很容易出錯,所以你可能需要使用Poison

iex(3)> Poison.encode!(%{bot: bot, username: "watson", text: "test"}) 
"{\"username\":\"watson\",\"text\":\"test\",\"bot\":\"mybot\"}" 
+0

非常感謝。這解決了我的問題。 –