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 an 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 HTTP,	HTTPS, FTP and FTPS on redirect	(7.65.2).  Older  ver-
       sions  of  libcurl  allowed all protocols on redirect except those dis-
       abled 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 from
       POST 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.72.0		       January 28, 2020	     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