diff options
Diffstat (limited to 'docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3')
-rw-r--r-- | docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3 | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3 b/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3 new file mode 100644 index 000000000..1ef8e17e0 --- /dev/null +++ b/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3 @@ -0,0 +1,104 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. +.\" * +.\" * This software is licensed as described in the file COPYING, which +.\" * you should have received as part of this distribution. The terms +.\" * are also available at https://curl.haxx.se/docs/copyright.html. +.\" * +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell +.\" * copies of the Software, and permit persons to whom the Software is +.\" * furnished to do so, under the terms of the COPYING file. +.\" * +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +.\" * KIND, either express or implied. +.\" * +.\" ************************************************************************** +.\" +.TH CURLOPT_ACCEPT_ENCODING 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options" +.SH NAME +CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads +.SH SYNOPSIS +#include <gnurl/curl.h> + +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc); +.SH DESCRIPTION +Pass a char * argument specifying what encoding you'd like. + +Sets the contents of the Accept-Encoding: header sent in an HTTP request, and +enables decoding of a response when a Content-Encoding: header is received. + +libcurl potentially supports several different compressed encodings depending +on what support that has been built-in. + +To aid applications not having to bother about what specific algorithms this +particular libcurl build supports, libcurl allows a zero-length string to be +set ("") to ask for an Accept-Encoding: header to be used that contains all +built-in supported encodings. + +Alternatively, you can specify exactly the encoding or list of encodings you +want in the response. Four encodings are supported: \fIidentity\fP, meaning +non-compressed, \fIdeflate\fP which requests the server to compress its +response using the zlib algorithm, \fIgzip\fP which requests the gzip +algorithm and (since curl 7.57.0) \fIbr\fP which is brotli. Provide them in +the string as a comma-separated list of accepted encodings, like: + + "br, gzip, deflate". + +Set \fICURLOPT_ACCEPT_ENCODING(3)\fP to NULL to explicitly disable it, which +makes libcurl not send an Accept-Encoding: header and not decompress received +contents automatically. + +You can also opt to just include the Accept-Encoding: header in your request +with \fICURLOPT_HTTPHEADER(3)\fP but then there will be no automatic +decompressing when receiving data. + +This is a request, not an order; the server may or may not do it. This option +must be set (to any non-NULL value) or else any unsolicited encoding done by +the server is ignored. + +Servers might respond with Content-Encoding even without getting a +Accept-Encoding: in the request. Servers might respond with a different +Content-Encoding than what was asked for in the request. + +The Content-Length: servers send for a compressed response is supposed to +indicate the length of the compressed content so when auto decoding is enabled +it may not match the sum of bytes reported by the write callbacks (although, +sending the length of the non-compressed content is a common server mistake). + +The application does not have to keep the string around after setting this +option. +.SH DEFAULT +NULL +.SH PROTOCOLS +HTTP +.SH EXAMPLE +.nf +CURL *curl = curl_easy_init(); +if(curl) { + curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); + + /* enable all supported built-in compressions */ + curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, ""); + + /* Perform the request */ + curl_easy_perform(curl); +} +.fi +.SH AVAILABILITY +This option was called CURLOPT_ENCODING before 7.21.6 + +The specific libcurl you're using must have been built with zlib to be able to +decompress gzip and deflate responses and with the brotli library to +decompress brotli responses. +.SH RETURN VALUE +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or +CURLE_OUT_OF_MEMORY if there was insufficient heap space. +.SH "SEE ALSO" +.BR CURLOPT_TRANSFER_ENCODING "(3), " CURLOPT_HTTPHEADER "(3), " +.BR CURLOPT_HTTP_CONTENT_DECODING "(3), " |