Php CURLOPT_头返回401

Php CURLOPT_头返回401,php,curl,Php,Curl,我需要得到位置标题。从我所读到的,这应该是简单的 curl_setopt($c, CURLOPT_HEADER, true); curl_setopt($c, CURLOPT_FOLLOWLOCATION, false); 如果我不包括这两个选项,curl请求可以正常工作,但我无法获取位置头 如果我包含了这两个选项,那么我会得到一个401错误 返回的位置应该是需要额外登录的URL。我做错了什么 如果有区别的话,我就是在做一个看跌期权 更新: 原来我看树看得太多,看森林看得不够。当生成回答此问题

我需要得到位置标题。从我所读到的,这应该是简单的

curl_setopt($c, CURLOPT_HEADER, true);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, false);
如果我不包括这两个选项,curl请求可以正常工作,但我无法获取位置头

如果我包含了这两个选项,那么我会得到一个401错误

返回的位置应该是需要额外登录的URL。我做错了什么

如果有区别的话,我就是在做一个看跌期权

更新:
原来我看树看得太多,看森林看得不够。当生成回答此问题所需的信息时,我意识到问题实际上与此电话之前的电话有关

在PUT之前,我需要获取会话令牌。因为在获取会话令牌时我没有解析出头,所以我得到的是一个空白会话令牌,这将导致PUT的401。当您设置CURLOPT\u头选项时,curl\u exec的结果中包含HTTP响应头。因此,如果要获取响应头,必须使用substr和curl\u getinfoCURLINFO\u HEADER\u SIZE从结果中提取响应头

以下是一个示例:

$c = curl_init();
// setting options including CURLOPT_HEADER
// ...
$result = curl_exec($c);
$info = curl_getinfo($c);
curl_close($c);
// extracting headers from result:
$n = $info['header_size'];
$headers = rtrim(substr($result, 0, $n));
$content = substr($result, $n);

设置CURLOPT_头选项时,响应头将包含在curl_exec的结果中。因此,如果你想得到一些响应头,你必须使用substr'和curl\u getinfoCURLINFO\u header\u SIZE`10.4.2 401 Unauthorized从结果中提取它-请求需要用户身份验证。是的,但是当我转储$result时,如果我设置了CURLOPT_头,那就是401错误。如果我没有设置CURLOPT_头,那么PUT可以正常工作,但是因为我没有设置CURLOPT_头,所以不包括位置。您必须提供CURL使用的完整代码。否则我就帮不上你的忙了。我看树看得太多,看森林看得不够。当生成回答此问题所需的信息时,我意识到问题实际上与此电话之前的电话有关。在PUT之前,我需要获取会话令牌。因为在获取会话令牌时我没有解析出头,所以我得到的是一个空白会话令牌,这将导致PUT的401。将此标记为答案,因为问题正在提取标题。谢谢你的帮助!