easy:SetOpt_Post(post)
Use #CURLOPT_POSTFIELDS
to specify what data to post.
Optionally, you can provide data to POST using the
#CURLOPT_READFUNCTION
and #CURLOPT_READDATA
options but then
you must make sure to not get #CURLOPT_POSTFIELDS
to anything but
Nil
. When providing data with a callback, you must transmit it using chunked
transfer-encoding or you must get the size of the data with the
#CURLOPT_POSTFIELDSIZE
or #CURLOPT_POSTFIELDSIZE_LARGE
options. To enable chunked encoding, you simply pass in the appropriate
Transfer-Encoding header, see the post-callback.c example.
You can override the default POST Content-Type: header by setting your own
with #CURLOPT_HTTPHEADER
.
Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
You can disable this header with #CURLOPT_HTTPHEADER
as usual.
If you use POST to an HTTP 1.1 server, you can send data without knowing the
size before starting the POST if you use chunked encoding. You enable this by
adding a header like "Transfer-Encoding: chunked" with
#CURLOPT_HTTPHEADER
. With HTTP 1.0 or without chunked transfer, you
must specify the size in the request.
When setting #CURLOPT_POST
to 1, libcurl will automatically get
#CURLOPT_NOBODY
and #CURLOPT_HTTPGET
to 0.
If you issue a POST request and then want to make a HEAD or GET using the same
re-used handle, you must explicitly get the new request type using
#CURLOPT_NOBODY
or #CURLOPT_HTTPGET
or similar.