CURLOPT_FOLLOWLOCATION-遵循HTTP 3xx 重定向
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FOLLOWLOCATION, long enable);
描述:
设置为 1 的长参数告诉库遵循服务器作为 3xx 响应中 HTTP 标头的一部分发送的任何 Location: 标头。Location: 标头可以指定要遵循的相对或绝对 URL。
libcurl 将发出对新 URL 的另一个请求,并一直遵循新的 Location: 标头,直到不再返回此类标头。CURLOPT_MAXREDIRS可用于限制 libcurl 将遵循的重定向次数。
libcurl 限制了它自动遵循的协议。接受的协议是用CURLOPT_REDIR_PROTOCOLS 设置的。默认情况下,libcurl 将允许 HTTP、HTTPS、FTP 和 FTPS 重定向(7.65.2)。旧版本的 libcurl 允许重定向所有协议,但出于安全原因禁用的协议除外:因为 7.19.4 FILE 和 SCP 被禁用,并且因为 7.40.0 SMB 和 SMBS 也被禁用。
当跟随 Location: 时,重定向它的 3xx 响应代码还指示它将在后续请求中使用哪种请求方法:对于 301、302 和 303 响应,libcurl 会将方法从 POST 切换到 GET,除非CURLOPT_POSTREDIR否则指示 libcurl。所有其他 3xx 代码将使 libcurl 再次发送相同的方法。