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