微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从标头 cURL php 中检索响应代码

如何解决从标头 cURL php 中检索响应代码

我正在尝试使用 cURL PHP 从响应标头中获取响应代码

当我发送请求时,这是 MYOB AccountRight API 返回的响应头:

HTTP/1.1 200 OK
Access-Control-Expose-Headers: Request-Context
Cache-Control: must-revalidate,private
content-encoding: gzip
Content-Type: application/json;charset=utf-8
Date: Thu,20 May 2021 01:07:56 GMT
ETag: "XXXXXXXXX"
Expires: -1
Request-Context: appId=cid-v1:a4936349-ef26-4f8a-9268-XXXXXXXXX
Server: Microsoft-IIS/10.0
vary: Accept-Encoding
X-AspNet-Version: 4.0.30319
X-mashery-Message-ID: 2fc6b494-54e8-43e2-8bc4-XXXXXXXXX
X-mashery-Responder: prod-j-worker-ap-southeast-2b-33.mashery.com
x-myobapi-elapsed: 1370
x-myobapi-requestid: bb0764c8-f62d-4848-bcae-XXXXXXXXX
X-Powered-By: ASP.NET
Content-Length: 1205
Connection: keep-alive

我已经尝试了 Getting HTTP code in PHP using curl解决方案,但我无法获得 http 代码

这是我获取帐户数据的代码

$curl = curl_init();

curl_setopt_array($curl,array(
  CURLOPT_URL => 'https://ar1.api.myob.com/accountright/766d620e-a5eb-41c3-8343-XXXXXXXX/GeneralLedger/Account?$filter=Name%20eq%20\'Inventory\'%20or%20Name%20eq%20\'Cost%20Of%20Sales\'%20or%20Name%20eq%20\'Inventory%20Income\'',CURLOPT_HEADER => true,CURLOPT_NOBODY => true,CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDirs => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTomrEQUEST => 'GET',CURLOPT_HTTPHEADER => array(
    'x-myobapi-version: v2','Accept-Encoding: gzip,deflate','x-myobapi-key: '.$theAPIKey,'x-myobapi-cftoken: '.$theCFToken,'Authorization: Bearer '.$theAccesstoken
  )
));

$response = curl_exec($curl);
$theInfo = curl_getinfo($response);
$http_code = $theInfo['http_code'];
curl_close($curl);
echo 'http code: ' . $http_code . '<br />';
echo '<pre>';
echo $response;
echo '</pre>';

当我回显 http 代码时,不会打印任何内容

解决方法

我认为您需要将 $curl 传递给 curl_getinfo 方法,而不是 $response

$response = curl_exec($curl);
$theInfo = curl_getinfo($curl);
$http_code = $theInfo['http_code'];

您可以在这里看到文档.. https://www.php.net/manual/en/function.curl-getinfo.php

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。