JamesRicky
JamesRicky

Reputation: 251

Double / Single Quotes in 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?

Upvotes: 12

Views: 20858

Answers (2)

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.

Upvotes: 8

roryhewitt
roryhewitt

Reputation: 4507

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

Upvotes: 1

Related Questions