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

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_POSTREDIR(3)	   Library Functions Manual	  CURLOPT_POSTREDIR(3)

NAME
       CURLOPT_POSTREDIR - how to act on an HTTP POST redirect

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_POSTREDIR,
				 long bitmask);

DESCRIPTION
       Pass  a	bitmask	 to  control how libcurl acts on redirects after POSTs
       that get	a 301, 302 or 303 response back. A parameter with  bit	0  set
       (value CURL_REDIR_POST_301) tells the library to	respect	RFC 7231 (sec-
       tion  6.4.2  to	6.4.4) and not convert POST requests into GET requests
       when   following	  a   301   redirection.   Setting   bit   1	(value
       CURL_REDIR_POST_302)  makes libcurl maintain the	request	method after a
       302 redirect whilst setting bit	2  (value  CURL_REDIR_POST_303)	 makes
       libcurl	maintain  the  request	method after a 303 redirect. The value
       CURL_REDIR_POST_ALL is a	convenience define that	sets all three bits.

       The non-RFC behavior is ubiquitous in web browsers, so the library does
       the conversion by default to maintain consistency.  However,  a	server
       may  require a POST to remain a POST after such a redirection. This op-
       tion is meaningful only when setting CURLOPT_FOLLOWLOCATION(3).

DEFAULT
       0

PROTOCOLS
       This functionality affects http only

EXAMPLE
       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

	   /* a	silly POST example */
	   curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data=true");

	   /* example.com is redirected, so we tell libcurl to send POST on 301,
	      302 and 303 HTTP response	codes */
	   curl_easy_setopt(curl, CURLOPT_POSTREDIR, (long)CURL_REDIR_POST_ALL);

	   curl_easy_perform(curl);
	 }
       }

HISTORY
       This option was known as	CURLOPT_POST301	up to 7.19.0 as	it  only  sup-
       ported the 301 then. CURL_REDIR_POST_303	was added in 7.26.0.

AVAILABILITY
       Added in	curl 7.19.1

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLINFO_EFFECTIVE_METHOD(3),  CURLINFO_REDIRECT_COUNT(3), CURLOPT_FOL-
       LOWLOCATION(3), CURLOPT_MAXREDIRS(3), CURLOPT_POSTFIELDS(3)

libcurl				  2025-06-03		  CURLOPT_POSTREDIR(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_POSTREDIR&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help