How to post PUT request under the Windows using curl?

41,932

Solution 1

curl sample calls

# with inlining plain data
curl -X PUT -d "payload" http://localhost
# referrring file
curl -X PUT -d @myXmlFile.xml http://localhost

If your windows curl-port does not support it go for cygwin. It is a linux-like environment for windows and also offers "a proper" curl.

Solution 2

In windows, if a double-quoted argument itself contains a double quote character, the double quote must be doubled.

For example, enter 'This is "quoted" payload' as "This is ""quoted"" payload" which is very different than in Unix.

Example:

curl -X PUT -d "This is ""quoted"" payload" http://localhost

Solution 3

in windows you'll need to put the @ inside the quotes for the file you're sending:

curl -XPUT --data-binary "@uploadme.txt"

otherwise you'll get weird errors as it tries to use the content of the file as the url:

curl: (6) Couldn't resolve host 'upload'
curl: (6) Couldn't resolve host 'me!'

(uploadme.txt contains "upload me!")

Share:
41,932
Harshil Shukla
Author by

Harshil Shukla

Updated on May 22, 2020

Comments

  • Harshil Shukla
    Harshil Shukla about 4 years

    I need to post XML data via curl.exe under windows using PUT request.

    In the curl help I found:

    -d/--data <data>   HTTP POST data (H)
    

    What should I supply for <data>?