foggy
Successfully posting JSON w/ :httpc
I have a Phoenix api that needs to make a couple of post requests. I am fully aware that there are easier options for me than calling :httpc from erlang, but I started trying it out and now I’m curious as to why my request is working.
When I make the following request, the Flask API which I’m calling does not register any params being passed in the body. (Note: remember this is calling erlang in elixir and is not raw erlang)
:httpc.request(:post, {'https://thecorrecturl.com', [], 'application/json', 'any body at all'}, [], [])
To be clear, I am successfully hitting the endpoint, it’s just “any body at all” doesn’t get through. I’ve tried different variations of ‘{“key”:“value”}’ but nothing ever gets through (backslashed quotes, backslashed single quotes, nothing).
What am I missing to post this json body?
Marked As Solved
idi527

iex(6)> :httpc.request(:post, {'http://httpbin.org/post', [], 'application/json', 'any body at all'}, [], [])
{:ok,
{{'HTTP/1.1', 200, 'OK'},
[
{'connection', 'keep-alive'},
{'date', 'Wed, 05 Sep 2018 05:38:54 GMT'},
{'via', '1.1 vegur'},
{'server', 'gunicorn/19.9.0'},
{'content-length', '308'},
{'content-type', 'application/json'},
{'access-control-allow-origin', '*'},
{'access-control-allow-credentials', 'true'}
],
'{\n "args": {}, \n "data": "any body at all", \n "files": {}, \n "form": {}, \n "headers": {\n "Connection": "close", \n "Content-Length": "15", \n "Content-Type": "application/json", \n "Host": "httpbin.org"\n }, \n "json": null, \n "origin": "159.65.119.183", \n "url": "http://httpbin.org/post"\n}\n'}}
works fine for me. You should probably check your flask app.







