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.
Last Post!
foggy
This is what I get for trying things when I have one foot out the door. I’ll be having a word with my python developer tomorrow lol (I don’t think request.get_json() is being used if I had to guess)
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex









