xref: /aosp_15_r20/external/curl/docs/libcurl/opts/CURLOPT_HEADER.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: CURLOPT_HEADER
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerProtocol:
8*6236dae4SAndroid Build Coastguard Worker  - HTTP
9*6236dae4SAndroid Build Coastguard Worker  - FTP
10*6236dae4SAndroid Build Coastguard Worker  - IMAP
11*6236dae4SAndroid Build Coastguard Worker  - POP3
12*6236dae4SAndroid Build Coastguard Worker  - SMTP
13*6236dae4SAndroid Build Coastguard WorkerSee-also:
14*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_HEADERFUNCTION (3)
15*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_HTTPHEADER (3)
16*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.1
17*6236dae4SAndroid Build Coastguard Worker---
18*6236dae4SAndroid Build Coastguard Worker
19*6236dae4SAndroid Build Coastguard Worker# NAME
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard WorkerCURLOPT_HEADER - pass headers to the data stream
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
24*6236dae4SAndroid Build Coastguard Worker
25*6236dae4SAndroid Build Coastguard Worker~~~c
26*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
27*6236dae4SAndroid Build Coastguard Worker
28*6236dae4SAndroid Build Coastguard WorkerCURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADER, long onoff);
29*6236dae4SAndroid Build Coastguard Worker~~~
30*6236dae4SAndroid Build Coastguard Worker
31*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
32*6236dae4SAndroid Build Coastguard Worker
33*6236dae4SAndroid Build Coastguard WorkerPass the long value *onoff* set to 1 to ask libcurl to include the headers
34*6236dae4SAndroid Build Coastguard Workerin the write callback (CURLOPT_WRITEFUNCTION(3)). This option is
35*6236dae4SAndroid Build Coastguard Workerrelevant for protocols that actually have headers or other meta-data (like
36*6236dae4SAndroid Build Coastguard WorkerHTTP and FTP).
37*6236dae4SAndroid Build Coastguard Worker
38*6236dae4SAndroid Build Coastguard WorkerWhen asking to get the headers passed to the same callback as the body, it is
39*6236dae4SAndroid Build Coastguard Workernot possible to accurately separate them again without detailed knowledge
40*6236dae4SAndroid Build Coastguard Workerabout the protocol in use.
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard WorkerFurther: the CURLOPT_WRITEFUNCTION(3) callback is limited to only ever
43*6236dae4SAndroid Build Coastguard Workerget a maximum of *CURL_MAX_WRITE_SIZE* bytes passed to it (16KB), while a
44*6236dae4SAndroid Build Coastguard Workerheader can be longer and the CURLOPT_HEADERFUNCTION(3) supports getting
45*6236dae4SAndroid Build Coastguard Workercalled with headers up to *CURL_MAX_HTTP_HEADER* bytes big (100KB).
46*6236dae4SAndroid Build Coastguard Worker
47*6236dae4SAndroid Build Coastguard WorkerIt is often better to use CURLOPT_HEADERFUNCTION(3) to get the header
48*6236dae4SAndroid Build Coastguard Workerdata separately.
49*6236dae4SAndroid Build Coastguard Worker
50*6236dae4SAndroid Build Coastguard WorkerWhile named confusingly similar, CURLOPT_HTTPHEADER(3) is used to set
51*6236dae4SAndroid Build Coastguard Workercustom HTTP headers.
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker# DEFAULT
54*6236dae4SAndroid Build Coastguard Worker
55*6236dae4SAndroid Build Coastguard Worker0
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
58*6236dae4SAndroid Build Coastguard Worker
59*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard Worker~~~c
62*6236dae4SAndroid Build Coastguard Workerint main(void)
63*6236dae4SAndroid Build Coastguard Worker{
64*6236dae4SAndroid Build Coastguard Worker  CURL *curl = curl_easy_init();
65*6236dae4SAndroid Build Coastguard Worker  if(curl) {
66*6236dae4SAndroid Build Coastguard Worker    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard Worker    curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
69*6236dae4SAndroid Build Coastguard Worker
70*6236dae4SAndroid Build Coastguard Worker    curl_easy_perform(curl);
71*6236dae4SAndroid Build Coastguard Worker  }
72*6236dae4SAndroid Build Coastguard Worker}
73*6236dae4SAndroid Build Coastguard Worker~~~
74*6236dae4SAndroid Build Coastguard Worker
75*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
76*6236dae4SAndroid Build Coastguard Worker
77*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
78*6236dae4SAndroid Build Coastguard Worker
79*6236dae4SAndroid Build Coastguard WorkerReturns CURLE_OK.
80