获取请求头信息,可以在curl_exec函数执行前,添加代码
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
在curl_exec函数执行后,通过
curl_getinfo($ch,CURLINFO_HEADER_OUT);
来获取curl执行请求的请求数据。
获取响应头信息,可以在curl_exec函数执行前,添加代码
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY,true);
之后 通过curl_exec函数来获取响应头信息。获取设置
curl_setopt($ch, CURLOPT_NOBODY,false);
然后对curl_exec获取的值通过\r\n\r\n进行分割截取第一部分即为响应头信息。
function curlRequest($url='', $postFields='' ,$header=['Content-Type: application/json; charset=utf-8'])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// curl_setopt($ch, CURLOPT_HEADER, true); //返回头信息
// curl_setopt($ch, CURLOPT_NOBODY, true); //不返回内容
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$ret = curl_exec($ch);
$out = curl_getinfo($ch,CURLINFO_HEADER_OUT);
var_dump($out,$postFields);
if (!$ret)
{
$result = curl_error($ch);
}
else
{
$rsp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($rsp != 200)
{
$result = "请求状态 " . $rsp . " " . curl_error($ch);
}
else
{
$result = $ret;
}
}
curl_close($ch);
return $result;
}