DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_FOLLOWLOCATION(3)





CURLOPT_FOLLOWLOCATION(3curl_easy_setopt optionCURLOPT_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  fol-
     low  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_FOLLOWLOCATION(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 */

libcurl 7.58.0   Last change: February 03, 2016                 1


CURLOPT_FOLLOWLOCATION(3curl_easy_setopt optionCURLOPT_FOLLOWLOCATION(3)


       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.58.0   Last change: February 03, 2016                 2


Man(1) output converted with man2html