Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

curlopt_suppress_connect_headers(3) [mojave man page]

CURLOPT_SUPPRESS_CONNECT_HEADERS(3)			     curl_easy_setopt options			       CURLOPT_SUPPRESS_CONNECT_HEADERS(3)

NAME
CURLOPT_SUPPRESS_CONNECT_HEADERS - Suppress proxy CONNECT response headers from user callbacks SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SUPPRESS_CONNECT_HEADERS, long onoff); DESCRIPTION
When CURLOPT_HTTPPROXYTUNNEL(3) is used and a CONNECT request is made, suppress proxy CONNECT response headers from the user callback func- tions CURLOPT_HEADERFUNCTION(3) and CURLOPT_WRITEFUNCTION(3). Proxy CONNECT response headers can complicate header processing since it's essentially a separate set of headers. You can enable this option to suppress those headers. For example let's assume an HTTPS URL is to be retrieved via CONNECT. On success there would normally be two sets of headers, and each header line sent to the header function and/or the write function. The data given to the callbacks would look like this: HTTP/1.1 200 Connection established {headers}... HTTP/1.1 200 OK Content-Type: application/json {headers}... {body}... However by enabling this option the CONNECT response headers are suppressed, so the data given to the callbacks would look like this: HTTP/1.1 200 OK Content-Type: application/json {headers}... {body}... DEFAULT
0 PROTOCOLS
All EXAMPLE
CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); curl_easy_setopt(curl, CURLOPT_HEADER, 1L); curl_easy_setopt(curl, CURLOPT_PROXY, "http://foo:3128"); curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, 1L); curl_easy_setopt(curl, CURLOPT_SUPPRESS_CONNECT_HEADERS, 1L); curl_easy_perform(curl); /* always cleanup */ curl_easy_cleanup(curl); } AVAILABILITY
Added in 7.54.0 RETURN VALUE
CURLE_OK or an error such as CURLE_UNKNOWN_OPTION. SEE ALSO
CURLOPT_HEADER(3), CURLOPT_PROXY(3), CURLOPT_HTTPPROXYTUNNEL(3), libcurl 7.54.0 April 28, 2016 CURLOPT_SUPPRESS_CONNECT_HEADERS(3)

Check Out this Related Man Page

CURLOPT_POSTREDIR(3)					     curl_easy_setopt options					      CURLOPT_POSTREDIR(3)

NAME
CURLOPT_POSTREDIR - how to act on a HTTP POST redirect SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTREDIR, long bitmask); DESCRIPTION
Pass a bitmask to control how libcurl acts on redirects after POSTs that get a 301, 302 or 303 response back. A parameter with bit 0 set (value CURL_REDIR_POST_301) tells the library to respect RFC 7231 (section 6.4.2 to 6.4.4) and not convert POST requests into GET requests when following a 301 redirection. Setting bit 1 (value CURL_REDIR_POST_302) makes libcurl maintain the request method after a 302 redirect whilst setting bit 2 (value CURL_REDIR_POST_303) makes libcurl maintain the request method after a 303 redirect. The value CURL_REDIR_POST_ALL is a convenience define that sets all three bits. The non-RFC behaviour is ubiquitous in web browsers, so the library does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when setting CURLOPT_FOLLOWLOCATION(3). DEFAULT
0 PROTOCOLS
HTTP(S) EXAMPLE
CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); /* a silly POST example */ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data=true"); /* example.com is redirected, so we tell libcurl to send POST on 301, 302 and 303 HTTP response codes */ curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL); curl_easy_perform(curl); } AVAILABILITY
Added in 7.17.1. This option was known as CURLOPT_POST301 up to 7.19.0 as it only supported the 301 then. CURL_REDIR_POST_303 was added in 7.26.0. RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. SEE ALSO
CURLOPT_FOLLOWLOCATION(3), CURLOPT_POSTFIELDS(3), libcurl 7.54.0 February 03, 2016 CURLOPT_POSTREDIR(3)
Man Page