Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CURL获取Office 365 Rest API上的错误消息_Api_Rest_Curl_Outlook_Office365 - Fatal编程技术网

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

使用CURL获取Office 365 Rest API上的错误消息,api,rest,curl,outlook,office365,Api,Rest,Curl,Outlook,Office365,我正在尝试使用CURL获取office 365 api的错误消息,但正文响应始终为null,CURL\u错误也为null 当我启用标题(在代码中注释)时,响应只带有标题,没有正文 下面是photoapi的示例代码,我在其中编写了错误的令牌来调用错误 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://outlook.office.com/api/v2.0/me/photo"); curl_setopt($ch, CURLOPT_RE

我正在尝试使用CURL获取office 365 api的错误消息,但正文响应始终为null,CURL\u错误也为null

当我启用标题(在代码中注释)时,响应只带有标题,没有正文

下面是photoapi的示例代码,我在其中编写了错误的令牌来调用错误

$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);
$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=数组(
“授权:承载jdbvdjkdvjdsvsd”,
“内容类型:应用程序/json”
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
//curl_setopt($ch,CURLOPT_头,1);
$response=curl\u exec($ch);
回显“响应:
”。$Response; 回显“HTTP代码:”.curl\u getinfo($ch,CURLINFO\u HTTP\u代码); 回显“
卷曲错误:
”。旋度误差($ch); 卷曲关闭($ch);
curl\u error($ch)
返回curl会话期间发生的最后一个错误。这个错误不是HTTP错误,而是curl面临的错误

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
如果您只是注释掉示例代码中的两个SSL选项,那么您将看到下面curl所面临的
curl\u 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
Curl错误:
SSL证书问题,请验证CA证书是否正常。细节: 错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败

如果确实需要该
状态行
消息,则必须从响应头解析该消息。您可以使用php的
regex
explode
函数。

即使在注释掉这两行之后,我也没有得到您提到的错误。但标头中存在无效令牌错误。我想我必须通过正则表达式来获得它。我希望API将错误作为响应返回,而不是null。。。