从 curl_exec 获取响应代码、标头和内容
Posted
技术标签:
【中文标题】从 curl_exec 获取响应代码、标头和内容【英文标题】:Get response code, headers and contents from curl_exec 【发布时间】:2020-02-24 16:44:23 【问题描述】:我似乎无法从 curl_exec 中获取响应代码、标头和内容。
这是我的最后一次尝试:
$url = '...';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CAINFO, 'PATH_TO_.cer');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_HEADER, true); //ATTEMPT1
/*curl_setopt($curl, CURLOPT_HEADERFUNCTION, function($curl, $header) use (&$headers) //ATTEMPT2
$len = strlen($header);
$header = explode(':', $header, 2);
if (count($header) < 2) // ignore invalid headers
return $len;
$headers[strtolower(trim($header[0]))][] = trim($header[1]);
print_r($headers);
return $len;
);*/
$contents = curl_exec($curl);
curl_close($curl);
我试过 ATTEMPT1 和 ATTEMPT2
在我的请求头中,有很多字段,例如速率限制,我每次都需要检索,但我还需要响应代码和请求的内容。
编辑:到目前为止,我发现我需要使用 ATTEMPT1 而不是 ATTEMPT2,因为最后一个只是手工制作的版本,我似乎无法理解这是摆脱了响应代码在标题中。
【问题讨论】:
【参考方案1】:您正在寻找curl_getinfo()
例如获取响应码:
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
【讨论】:
以上是关于从 curl_exec 获取响应代码、标头和内容的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 中从服务器获取带有 jwt 令牌的响应标头