libcurl 如何在 URL 重定向到自身时停止重定向

libcurl how to stop redirecting when an url redirect to itself

本文关键字:重定向 URL libcurl      更新时间:2023-10-16

我使用libcurl获取网页的源代码,一切都很好,直到获得"www.macys.com"的源代码。

如果没有CURLOPT_FOLLOWLOCATION选项,我的程序将一无所获,但是使用此选项时,重定向位置始终为"/",除非我设置CURLOPT_MAXREDIRS选项,否则curl_easy_perform函数将不会返回。

我的问题是如何使用 libcurl 获取此网页的源代码?多谢。

我的库库尔版本:7.23.1,操作系统:CentOS 6.0(最终版)x64

如果服务器不断重定向客户端,并且您要求客户端遵循重定向,那么您期望它做什么?

唯一的选择是在一定数量的步骤后停止,这就是CURLOPT_MAXREDIRS的用途。

发生这样的事情的原因主要是因为该网站正在检查您的 curl 使用不提供的客户端特定详细信息(用户代理、cookie、引用或类似)。您通常可以使 curl 请求与浏览器的请求更相似,然后避免这种影响。

要么禁用CURLOPT_FOLLOWLOCATION并手动跟踪重定向以确保不会发生循环,要么将CURLOPT_MAXREDIRS设置为只能通过自我重定向到达的疯狂数字 (10)。