How can I send POST request with a csv or a text file to the server running on a localhost
using cURL
.
I have tried curl -X POST -d @file.csv http://localhost:5000/upload
but I get
{ "message": "The browser (or proxy) sent a request that this server could not understand." }
My server is flask_restful API
. Thanks a lot in advance.
There are many alternate ways to accomplish this. One way is I have used the following:
curl -F ‘data=@<file_location>’ <URL>
Eg. curl -F [email protected] localhost:5000/h
Your command can also be changed slightly like this
curl -X POST -H 'Content-Type: text/csv' -d @file.csv http://localhost:5000/upload
The above is one of the many ways.It can be sent either as a part of form or data, or multipart, etc. You can refer Medium Post
Curl's default Content-Type is application/x-www-form-urlencoded
so your problem is probably that the data you are POSTing is not actually form data. It might work if you set the content type header properly:
-H "Content-Type: text/csv"
Though it does depend on the server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With