Name
easy:SetOpt_Post -- request an HTTP POST
Synopsis
easy:SetOpt_Post(post)
Function
A parameter set to 1 tells libcurl to do a regular HTTP post. This will also make the library use a "Content-Type: application/x-www-form-urlencoded" header. (This is by far the most commonly used POST method).

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 set #CURLOPT_POSTFIELDS to anything but Nil. When providing data with a callback, you must transmit it using chunked transfer-encoding or you must set 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 set #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 set the new request type using #CURLOPT_NOBODY or #CURLOPT_HTTPGET or similar.

Inputs
post
input value

Show TOC