When you change the request method by setting
to something, you don't actually change how libcurl behaves or acts in regards
to the particular request method, it will only change the actual string sent
in the request.
Restore to the internal default by setting this to
This option can be used to specify the request:
When you tell libcurl to do a HEAD request, but then specify a GET though a
custom request libcurl will still act as if it sent a HEAD. To switch to a
proper HEAD use
#CURLOPT_NOBODY, to switch to a proper POST use
#CURLOPT_POSTFIELDS and to switch to a proper
Many people have wrongly used this option to replace the entire request with
their own, including multiple headers and POST contents. While that might work
in many cases, it will cause libcurl to send invalid requests and it could
possibly confuse the remote server badly. Use
#CURLOPT_POSTFIELDS to set POST data. Use
to replace or extend the set of headers sent by libcurl. Use
#CURLOPT_HTTP_VERSION to change HTTP version.
When you tell libcurl to use a custom request it will behave like a LIST or
RETR command was sent where it expects data to be returned by the server. As
#CURLOPT_NOBODY should be used when specifying commands such as
DELE and NOOP for example.
Normally a multiline response is returned which can be used, in conjunction
#CURLOPT_MAIL_RCPT, to specify an EXPN request. If the
#CURLOPT_NOBODY option is specified then the request can be used to
issue NOOP and RSET commands.