我试图使用CURL获取office 365 api的错误消息,但是body响应始终为null,curl_error也为null。
当我启用标题(在代码中注释)时,响应带有标题,只有没有正文。
这是照片api的示例代码,我写错了令牌来调用错误
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://outlook.office.com/api/v2.0/me/photo");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$headers = array(
"Authorization: Bearer jdbvdbvdjkdvjdsvsd",
"Content-Type: application/json"
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
// curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
echo 'Response : <br/>'.$response;
echo 'HTTP Code : '.curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo '<br/>Curl error:<br/> ' . curl_error($ch);
curl_close($ch);
答案 0 :(得分:0)
curl_error($ch)
返回卷曲会话期间发生的最后一个错误。而且这个错误不是HTTP错误,而是卷曲所面临的错误。
如果您只是从示例代码中注释掉两个SSL选项,那么您将看到以下来自curl_error($ch)
的错误信息,即您的卷曲所面临的错误信息。
Curl error:<br/> SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
如果您确实需要status line
消息,则必须从响应标头中解析它。您可以使用php的regex
或explode
函数。