Provided by: libcurl4-doc_8.9.1-2ubuntu2.1_all bug

NAME

       CURLOPT_COOKIE - HTTP Cookie header

SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIE, char *cookie);

DESCRIPTION

       Pass  a  pointer  to  a null-terminated string as parameter. It is used to set one or more
       cookies in the HTTP request. The format of the string should be NAME=CONTENTS, where  NAME
       is the cookie name and CONTENTS is what the cookie should contain.

       To  set  multiple  cookies,  set  them  all  using a single option concatenated like this:
       "name1=content1; name2=content2;" etc.

       This option sets the cookie header explicitly in  the  outgoing  request(s).  If  multiple
       requests  are  done  due to authentication, followed redirections or similar, they all get
       this cookie passed on.

       The cookies set by this option are separate from the internal cookie storage held  by  the
       cookie  engine  and  they  are  not be modified by it. If you enable the cookie engine and
       either you have imported a cookie of the same name (e.g. 'foo') or the server has set one,
       it has no effect on the cookies you set here. A request to the server sends both the 'foo'
       held by the cookie engine and the 'foo' held by this option.  To  set  a  cookie  that  is
       instead   held   by   the   cookie   engine   and  can  be  modified  by  the  server  use
       CURLOPT_COOKIELIST(3).

       Using this option multiple times makes the last set string override the previous ones.

       This  option  does  not  enable  the   cookie   engine.   Use   CURLOPT_COOKIEFILE(3)   or
       CURLOPT_COOKIEJAR(3) to enable parsing and sending cookies automatically.

       The application does not have to keep the string around after setting this option.

       If libcurl is built with PSL (Public Suffix List) support, it detects and discards cookies
       that are specified for such suffix domains that should not be allowed to have cookies.  If
       libcurl  is  not  built  with  PSL  support,  it has no ability to stop super cookies. PSL
       support   is   identified   by   the   CURL_VERSION_PSL   feature    bit    returned    by
       curl_version_info(3).

DEFAULT

       NULL, no cookies

PROTOCOLS

       This functionality affects http only

EXAMPLE

       int main(void)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

           curl_easy_setopt(curl, CURLOPT_COOKIE, "tool=curl; fun=yes;");

           curl_easy_perform(curl);
         }
       }

AVAILABILITY

       Added in curl 7.1

RETURN VALUE

       Returns  CURLE_OK  if HTTP is enabled, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY
       if there was insufficient heap space.

SEE ALSO

       CURLINFO_COOKIELIST(3),            CURLOPT_COOKIEFILE(3),            CURLOPT_COOKIEJAR(3),
       CURLOPT_COOKIELIST(3), CURLOPT_HTTPHEADER(3)