1CURLOPT_HTTPPOST(3) curl_easy_setopt options CURLOPT_HTTPPOST(3)
2
3
4
6 CURLOPT_HTTPPOST - multipart formpost content
7
9 #include <curl/curl.h>
10
11 CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPPOST,
12 struct curl_httppost *formpost);
13
15 Tells libcurl you want a multipart/formdata HTTP POST to be made and
16 you instruct what data to pass on to the server in the formpost argu‐
17 ment. Pass a pointer to a linked list of curl_httppost structs as pa‐
18 rameter. The easiest way to create such a list, is to use curl_for‐
19 madd(3) as documented. The data in this list must remain intact as long
20 as the curl transfer is alive and is using it.
21
22 Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue"
23 header. You can disable this header with CURLOPT_HTTPHEADER(3).
24
25 When setting CURLOPT_HTTPPOST(3), it will automatically set CURLOPT_NO‐
26 BODY(3) to 0.
27
28 This option is deprecated! Do not use it. Use CURLOPT_MIMEPOST(3) in‐
29 stead after having prepared mime data.
30
32 NULL
33
35 HTTP
36
38 /* Fill in the file upload field. This makes libcurl load data from
39 the given file name when curl_easy_perform() is called. */
40 curl_formadd(&formpost,
41 &lastptr,
42 CURLFORM_COPYNAME, "sendfile",
43 CURLFORM_FILE, "postit2.c",
44 CURLFORM_END);
45
46 /* Fill in the filename field */
47 curl_formadd(&formpost,
48 &lastptr,
49 CURLFORM_COPYNAME, "filename",
50 CURLFORM_COPYCONTENTS, "postit2.c",
51 CURLFORM_END);
52
53 /* Fill in the submit field too, even if this is rarely needed */
54 curl_formadd(&formpost,
55 &lastptr,
56 CURLFORM_COPYNAME, "submit",
57 CURLFORM_COPYCONTENTS, "send",
58 CURLFORM_END);
59
61 As long as HTTP is enabled. Deprecated in 7.56.0.
62
64 Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
65
67 CURLOPT_POSTFIELDS(3), CURLOPT_POST(3), CURLOPT_MIMEPOST(3), curl_for‐
68 madd(3), curl_formfree(3), curl_mime_init(3)
69
70
71
72libcurl 7.85.0 May 17, 2022 CURLOPT_HTTPPOST(3)