我需要获取位置标题。根据我的阅读,这应该像
一样简单curl_setopt($c, CURLOPT_HEADER, true);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, false);
如果我不包含这两个选项,则curl请求正常,但我无法获取位置标题。
如果我确实包含这两个选项,那么我会收到401错误。
要返回的位置应该是需要额外登录的URL。我做错了什么?
如果它有所作为,我正在做一个PUT。
更新: 事实证明,我在树林里看得太多而在森林里看不够。当生成响应此问题所需的信息时,我意识到问题实际上是在此次呼叫之前的呼叫。
在PUT之前,我需要获得一个会话令牌。由于我在获取会话令牌时没有解析出标头,因此我得到了一个空白的会话令牌,这导致了PUT的401。
答案 0 :(得分:0)
当您设置curl_exec
选项时,HTTP响应标头包含到CURLOPT_HEADER
的结果。因此,如果您想获取响应标头,则必须使用substr()
和curl_getinfo(CURLINFO_HEADER_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);