Issue
I am trying to send a POST/PUT requests with CMD (command prompt in windows 10) using these commands:
1st:
curl -iX PUT -H "Content-Type: application/json" -d \"{\"name\": \"test number 1\", \"description\": \"a website test \", \"category\": \"test\", \"release_date\": \"2017-10-08T01:01:00.776594Z\"}\" localhost:8000/home/search/3
2nd:
curl -iX PUT -H "Content-Type: application/json" -d "{"name": "test number 1", "description": "A website test", "category": "test", "release_date": "2017-10-08T01:01:00.776594Z"}" localhost:8000/home/search/3
and using these commands I am getting a curl: could not resolve
error, and when its done naming everything it couldn't resolve I get a server error status 500
I don't understand why its not working cause I tried these commands and they seemed to work before and they don't.
(I thought I had an error in my code and I tried the http request instead of curl and it worked fine with no problem getting the 200 OK
status.).
Solution
If NOT on Windows, the answer above by @Necklondon with the single quotes should work.
If on Windows, however, you'll need to escape the double quotes within the JSON string.
curl -iX PUT -H "Content-Type: application/json" -d "{""name"": ""test number 1"",""description"": ""A website test"",""category"": ""test"",""release_date"": ""2017-10-08T01:01:00.776594Z""}" http://localhost:8000/home/search/3
In addition, to illustrate how much simpler the CURL command becomes when using a separate file for your JSON...
C:\Users\...\Desktop>TYPE somefile.json
{
"name": "test number 1",
"description": "A website test",
"category": "test",
"release_date": "2017-10-08T01:01:00.776594Z"
}
C:\Users\...\Desktop>curl -iX PUT -H "Content-Type: application/json" --data-binary @somefile.json http://localhost:8000/home/search/3
Answered By - Justin Ezequiel