Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 re-
       sponse. 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 Loca-
       tion: 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 re-
       quest: 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	5.5.5		       February	03, 2016     CURLOPT_FOLLOWLOCATION(3)

NAME | SYNOPSIS | DESCRIPTION | DEFAULT | PROTOCOLS | EXAMPLE | AVAILABILITY | RETURN VALUE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CURLOPT_FOLLOWLOCATION&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help