Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Double / Single Quotes in cURL Windows

Tags:

curl

windows

I have the following cURL request:

curl -H 'Host: example.com' -H 'Accept-encoding: gzip, deflate' -H 'Accept: /' -H 'User-Agent: iPhone' -H 'Secret-Key: 04d798d5ed2e560fb596bcfc3838fec0' -H 'Date: 2017-04-23T00:57:00.05+0200' -H 'Content-type: application/json' --data-binary '{"RegDate": "2017-04-23", "Username": "JamesRicky", "Password": "0001"}' 'example.com/user'

It works perfectly on Linux, but on Windows (using Command Prompt / Powershell), it gives me the following response:

curl: (6) Couldn't resolve host 'example.com''
curl: (6) Couldn't resolve host 'gzip,'
curl: (6) Couldn't resolve host 'deflate''
curl: (6) Couldn't resolve host '*'
curl: (6) Couldn't resolve host 'iPhone''
curl: (6) Couldn't resolve host '04d798d5ed2e560fb596bcfc3838fec0''
curl: (6) Couldn't resolve host '2017-04-23T00:57'

This is because of how Command Prompt handles Double / Single quotes. I have been trying for the past 30 minutes to try to figure out how I would format it on Windows.

I tried the following things:

1.

curl -H "Host: example.com" -H "Accept-encoding: gzip, deflate" -H "Accept: /" -H "User-Agent: iPhone" -H "Secret-Key: 04d798d5ed2e560fb596bcfc3838fec0" -H "Date: 2017-04-23T00:57:00.05+0200" -H "Content-type: application/json" --data-binary ^"{^"RegDate^": ^"2017-04-23^", ^"Username^": ^"JamesRicky^", ^"Password^": "^0001^"}^" ^"example.com/user^"

2.

curl -H "Host: example.com" -H "Accept-encoding: gzip, deflate" -H "Accept: /" -H "User-Agent: iPhone" -H "Secret-Key: 04d798d5ed2e560fb596bcfc3838fec0" -H "Date: 2017-04-23T00:57:00.05+0200" -H "Content-type: application/json" --data-binary \"{\"RegDate\": \"2017-04-23\", \"Username\": \"JamesRicky\", \"Password\": "\0001\"}\" \"example.com/user\"

None of the above works...

Any ideas how to format the first cURL request so it will work on Windows?

like image 826
JamesRicky Avatar asked Apr 23 '17 00:04

JamesRicky


2 Answers

Inside the single or double qouted element, escape additional single or double quotes with a backslash.

Per https://stackoverflow.com/a/15828662/147637

This works great on curl on win 10 command line.

like image 164
Jonesome Reinstate Monica Avatar answered Sep 30 '22 13:09

Jonesome Reinstate Monica


See this thread. The quick answer is that you may need to use the unicode-encoded double-quote (\u0022) or single-quote (\u0027).

https://stackoverflow.com/a/18612754/279782

like image 29
roryhewitt Avatar answered Sep 30 '22 13:09

roryhewitt