OpenSuSE Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
CURLOPT_POSTFIELDS(3)               libcurl              CURLOPT_POSTFIELDS(3)

NAME
       CURLOPT_POSTFIELDS - data to POST to server

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDS, char *postdata);

DESCRIPTION
       Pass  a  char  * as parameter, pointing to the data buffer to use in an
       HTTP POST operation. The data must be formatted and encoded the way you
       want the server to receive it. libcurl does not convert or encode it in
       any way. For example, the web server may assume that this data  is  URL
       encoded.

       The  data pointed to is NOT copied by the library: as a consequence, it
       must be preserved by  the  calling  application  until  the  associated
       transfer  finishes.  This behavior can be changed (so libcurl does copy
       the data) by instead using the CURLOPT_COPYPOSTFIELDS(3) option.

       This POST  is  a  normal  application/x-www-form-urlencoded  kind  (and
       libcurl  sets  that  Content-Type by default when this option is used),
       which is commonly used by HTML forms.  Change  Content-Type  with  CUR-
       LOPT_HTTPHEADER(3).

       You  can use curl_easy_escape(3) to URL encode your data, if necessary.
       It returns a pointer to an encoded string that can be passed  as  post-
       data.

       Using CURLOPT_POSTFIELDS(3) implies setting CURLOPT_POST(3) to 1.

       If  CURLOPT_POSTFIELDS(3)  is  explicitly set to NULL then libcurl gets
       the POST data from the read callback. If you want to send  a  zero-byte
       POST  set  CURLOPT_POSTFIELDS(3)  to  an  empty  string,  or  set  CUR-
       LOPT_POST(3) to 1 and CURLOPT_POSTFIELDSIZE(3) to 0.

       libcurl assumes this option points to a null-terminated  string  unless
       you also set CURLOPT_POSTFIELDSIZE(3) to specify the length of the pro-
       vided data, which then is strictly required if you  want  to  send  off
       null bytes included in the data.

       Using  POST  with  HTTP 1.1 implies the use of a "Expect: 100-continue"
       header, and libcurl adds that  header  automatically  if  the  POST  is
       either  known to be larger than 1MB or if the expected size is unknown.
       You can disable this header with CURLOPT_HTTPHEADER(3) as usual.

       To make multipart/formdata posts,  check  out  the  CURLOPT_MIMEPOST(3)
       option combined with curl_mime_init(3).

DEFAULT
       NULL

PROTOCOLS
       HTTP

EXAMPLE
       /* send an application/x-www-form-urlencoded POST */
       CURL *curl = curl_easy_init();
       if(curl) {
         const char *data = "data to send";

         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

         /* size of the POST data if strlen() is not good enough */
         curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);

         /* pass in a pointer to the data - libcurl does not copy */
         curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);

         curl_easy_perform(curl);
       }

       /* send an application/json POST */
       CURL *curl = curl_easy_init();
       if(curl) {
         const char *json = "{
         struct curl_slist *slist1 = NULL;
         slist1 = curl_slist_append(slist1, "Content-Type: application/json");
         slist1 = curl_slist_append(slist1, "Accept: application/json");

         /* set custom headers */
         curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, slist1);

         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

         /* pass in a pointer to the data - libcurl does not copy */
         curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json);

         curl_easy_perform(curl);
       }

AVAILABILITY
       Always

RETURN VALUE
       Returns CURLE_OK

SEE ALSO
       CURLOPT_MIMEPOST(3), CURLOPT_POSTFIELDSIZE(3), CURLOPT_READFUNCTION(3),
       CURLOPT_UPLOAD(3)

ibcurl 8.4.0                  September 26, 2023         CURLOPT_POSTFIELDS(3)

Want to link to this manual page? Use this URL:
<
http://star2.abcm.com/cgi-bin/bsdi-man?query=CURLOPT_POSTFIELDS&sektion=3&manpath=>

home | help