Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

curlopt_followlocation(3) [mojave man page]

CURLOPT_FOLLOWLOCATION(3)				     curl_easy_setopt options					 CURLOPT_FOLLOWLOCATION(3)

NAME
CURLOPT_FOLLOWLOCATION - follow HTTP 3xx redirects SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FOLLOWLOCATION, long enable); DESCRIPTION
A long parameter set to 1 tells the library to follow any Location: header that the server sends as part of a HTTP header in a 3xx response. The Location: header can specify a relative or an absolute URL to follow. libcurl will issue another request for the new URL and follow new Location: headers all the way until no more such headers are returned. CURLOPT_MAXREDIRS(3) can be used to limit the number of redirects libcurl will follow. libcurl limits what protocols it automatically follows to. The accepted protocols are set with CURLOPT_REDIR_PROTOCOLS(3). By default libcurl will allow all protocols on redirect except those disabled for security reasons: Since 7.19.4 FILE and SCP are disabled, and since 7.40.0 SMB and SMBS are also disabled. When following a Location:, the 3xx response code that redirected it also dictates which request method it will use in the subsequent request: For 301, 302 and 303 responses libcurl will switch method to GET unless CURLOPT_POSTREDIR(3) instructs libcurl otherwise. All other 3xx codes will make libcurl send the same method again. For users who think the existing location following is too naive, too simple or just lacks features, it is very easy to instead implement your own redirect follow logic with the use of curl_easy_getinfo(3)'s CURLINFO_REDIRECT_URL(3) option instead of using CURLOPT_FOLLOWLOCA- TION(3). DEFAULT
0, disabled PROTOCOLS
HTTP(S) EXAMPLE
CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); /* example.com is redirected, so we tell libcurl to follow redirection */ curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_perform(curl); } AVAILABILITY
Along with HTTP RETURN VALUE
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not. SEE ALSO
CURLOPT_REDIR_PROTOCOLS(3), CURLOPT_PROTOCOLS(3), CURLOPT_POSTREDIR(3), CURLINFO_REDIRECT_URL(3), ,CURLINFO_REDIRECT_COUNT(3), libcurl 7.54.0 February 03, 2016 CURLOPT_FOLLOWLOCATION(3)

Check Out this Related Man Page

curl_easy_cleanup(3)						  libcurl Manual					      curl_easy_cleanup(3)

NAME
curl_easy_cleanup - End a libcurl easy handle SYNOPSIS
#include <curl/curl.h> void curl_easy_cleanup(CURL *handle); DESCRIPTION
This function must be the last function to call for an easy session. It is the opposite of the curl_easy_init(3) function and must be called with the same handle as input that a curl_easy_init(3) call returned. This might close all connections this handle has used and possibly has kept open until now - unless it was attached to a multi handle while doing the transfers. Don't call this function if you intend to transfer more files, re-using handles is a key to good performance with libcurl. Occasionally you may get your progress callback or header callback called from within curl_easy_cleanup(3) (if previously set for the han- dle using curl_easy_setopt(3)). Like if libcurl decides to shut down the connection and the protocol is of a kind that requires a com- mand/response sequence before disconnect. Examples of such protocols are FTP, POP3 and IMAP. Any use of the handle after this function has been called and have returned, is illegal. curl_easy_cleanup(3) kills the handle and all mem- ory associated with it! For libcurl versions before 7.17,: after you've called this function, you can safely remove all the strings you've previously told libcurl to use, as it won't use them anymore now. RETURN VALUE
None EXAMPLE
CURL *curl = curl_easy_init(); if(curl) { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } SEE ALSO
curl_easy_init(3), curl_easy_duphandle(3), curl_easy_reset(3), curl_multi_cleanup(3), curl_multi_remove_handle(3) libcurl 7.54.0 February 03, 2016 curl_easy_cleanup(3)
Man Page