Binary Data Posting with curl Binary Data Posting with curl curl curl

Binary Data Posting with curl


You don't need --header "Content-Length: $LENGTH".

curl --request POST --data-binary "@template_entry.xml" $URL

Note that GET request does not support content body widely.

Also remember that POST request have 2 different coding schema. This is first form:

  $ nc -l -p 6666 &  $ curl  --request POST --data-binary "@README" http://localhost:6666POST / HTTP/1.1User-Agent: curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6Host: localhost:6666Accept: */*Content-Length: 9309Content-Type: application/x-www-form-urlencodedExpect: 100-continue.. -*- mode: rst; coding: cp1251; fill-column: 80 -*-.. rst2html.py README README.html.. contents::

You probably request this:

-F/--form name=content           (HTTP) This lets curl emulate a filled-in form in              which a user has pressed the submit button. This              causes curl to POST data using the Content- Type              multipart/form-data according to RFC2388. This              enables uploading of binary files etc. To force the              'content' part to be a file, prefix the file name              with an @ sign. To just get the content part from a              file, prefix the file name with the symbol <. The              difference between @ and < is then that @ makes a              file get attached in the post as a file upload,              while the < makes a text field and just get the              contents for that text field from a file.