使用CURL在Office 365 Rest API上获取错误消息

时间:2016-01-28 07:20:54

标签: api rest curl outlook office365

我试图使用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);

1 个答案:

答案 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的regexexplode函数。