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