如何从curl post请求获取响应头?

时间:2020-04-08 02:41:30

标签: php curl

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, '');
curl_setopt($ch, CURLOPT_USERPWD, 'PortalPartner' . ":" . 'W169F1320&8d');

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$header = curl_getinfo($ch);
curl_close($ch);

我需要查看响应标头,该标头将是下一个请求的令牌,但我不能。 当我在失眠或邮递员中使用此请求时,我可以看到响应标头,但我无法在代码中看到。

1 个答案:

答案 0 :(得分:0)

您可以使用curl_setoptCURLOPT_HEADERFUNCTION为标头指定一个回调函数。回调将在每个标题行执行。

$headers=[];
curl_setopt($ch, CURLOPT_HEADERFUNCTION, function($ch, $header) use ($headers){
    array_push($headers, $header);
});

请注意,这将对每个标题行(包括起始HTTP/行)执行,并会提供一个简单的字符串。您将需要在“:”上分割每一行以分隔键和值。通常,我会将标头解析为一个关联数组。