我正在尝试转换CURL请求与HTTPoison在 Elixir Phoenix。当我运行CURL请求推荐,它工作正常。我得到了“415不支持的媒体类型”错误时,我尝试与HTTPoison。
Phoenix/Elixir - cURL works, but HTTPoison fails
这是我的CURL请求
curl -u "user:password" -i -H "Accept:application/json" -X POST -d
"amount=100&method=0&type=bank&receiver=CCC&info1=hello"
http://00.000.000.00:8080/services/id/999999111999/calculate
这是我的Httppoison请求
url = "myurl"
orderid = "myorderid"
headers = ["Accept", "application/json"]
request_body = '{"type" : "bank",
"method" : 0,
"amount" : #{amount},
"receiver" : "CCC"
"info1" : #{orderid}}'
dicoba = HTTPoison.post(url, headers, request_body, hackney: [basic_auth: {"#{user}", "#password"}]) |> IO.inspect
1条答案
按热度按时间vzgqcmou1#
curl请求的内容类型是application/x-www-form-urlencoded,但是您的HTTPoison请求格式不正确,您向请求正文传递了一个字符列表,HTTPoison希望它是二进制的,并且您没有指定请求的内容类型。
要创建application/x-www-form-urlencoded请求主体,可以使用函数
URI.encode_query/1
。