php - 解析用于与 API 交互的 HTTP 状态代码

标签 php curl http-status-codes

我正在用 PHP 构建一个脚本来与 API 交互,并且需要能够解析 API 提供给我的 HTTP 状态代码。在大多数情况下,它会给出以下响应之一:

HTTP/1.1 401 Unauthorized
HTTP/1.1 403 Forbidden 
HTTP/1.1 404 Not Found 
HTTP/1.1 410 Gone 

我需要能够识别正在给出的响应,如果是 401 或 410,则继续,但是,如果是 401 或 403,则要跟踪并在一段时间后关闭脚本行(因为我已经超出了当天的通话限制)。

我的代码非常简单:

for($i = $start;$i < $end;$i++)
{
     // construct the API url
     $url = $base_url.$i.$end_url;
     // make sure that the file is accessible
     if($info = json_decode(file_get_contents($url)))
     {
        // process retrieved data
     } else {
        // what do I put here?
     }
}

我的问题是我不知道要在“else”循环中放入什么。我正在使用 CodeIgniter 框架,如果有人知道要使用的任何快捷方式的话。此外,我愿意使用 cURL,但以前从未使用过。

最佳答案

这对于正则表达式来说是一个很好的工作,因为状态总是以版本代码文本的形式出现:

$matches = array();
preg_match('#HTTP/\d+\.\d+ (\d+)#', $http_response_header[0], $matches);
echo $matches[1]; // HTTP/1.1 410 Gone return 410

preg_match

$http_response_header

关于php - 解析用于与 API 交互的 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928812/

相关文章:

php - 如何在 PHP 的 cURL POST HTTP 请求中包含授权 header ?

json - cURL 错误 - 无法发送 -d 的文本值

REST:在这种重定向情况下,http 代码 300 是否合适?

.net - System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse 请求失败,HTTP 状态为 404

javascript - undefined index -> PHP 上传不工作

php - 无法运行 Composer 安装

php - 关于 protected 可见性的奇怪工作 php 代码

php - 如何检查函数在 PHP 中是公开的还是 protected

VM 中的 Linux -curl 无法下载 nvm 文件?

java - 返回客户异常对象时更改responseStatusCode