I can run a Flask app/API on my local machine using flask run
on the command line. This will set up a local server (for me, at http://127.0.0.1:5000/
), and run the app at that address.
Having done this, I can make GET requests to my app just by visiting http://127.0.0.1:5000/<route>
in my browser. How can I make a POST request to the app? I also have parameters I want to include in the body of the POST request.
CodePudding user response:
You can't make request POST
using URL
in browser. It needs HTML
page which has
<form method="POST">
</form>
so your server would have send this page to you.
Instead of browser you can use Python modules like urllib
or simpler requests
which can run .get()
, .post(...)
, etc.
You may also try to use console programs like curl
curl https://httpbin.org/post -X POST -d "search=hello world"
{
"args": {},
"data": "",
"files": {},
"form": {
"search": "hello world"
},
"headers": {
"Accept": "*/*",
"Content-Length": "18",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/7.68.0",
"X-Amzn-Trace-Id": "Root=1-61687da3-5eaaa4ff6419c36639a2cc5d"
},
"json": null,
"origin": "83.11.118.179",
"url": "https://httpbin.org/post"
}
BTW:
Some API uses curl in documentation as example to show how to use API.
There is page https://curl.trillworks.com which can convert from curl
to Python requests
(but sometimes has problem to do it correctly)