Provided by: libcurl4-doc_8.9.1-2ubuntu2.2_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)

libcurl                                            2024-12-11                                  CURLOPT_COOKIE(3)