laravel - Laravel 错误 429(请求过多):如何检查和记录请求计数?
问题描述
我的控制台中有以下错误消息:
加载资源失败:服务器响应状态为 429 (Too Many Requests)
所以,我的问题是,当我接近限制时,我从哪里可以获得检查和记录的请求数量?
解决方案
在客户端,您可以检查响应标头
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
如果您发送请求axios
axios.get(`/api/users`)
.then(({ data, headers }) => {
console.log(headers['x-ratelimit-limit']);
});
在服务器端,您可以添加这样的中间件
php artisan make:middleware LogRequestLimit
在app\Http\Kernel.php中注册
protected $middleware = [
...
\App\Http\Middleware\LogRequestLimit::class,
];
app\Http\Middleware\LogRequestLimit.php
<?php
namespace App\Http\Middleware;
use Closure;
class LogRequestLimit
{
public function handle($request, Closure $next)
{
$response = $next($request);
\Log::debug($response->headers->get('x-ratelimit-limit'));
return $response;
}
}
推荐阅读
- python - CV2 imwrite 生成无法打开的图像
- javascript - 是否可以在不使用反应应用程序的情况下使用反应语音识别?
- c++ - 来自 Microsoft 的带有压缩 API 的示例代码中未解析的外部符号
- laravel - 在 Laravel 中使用 nwidart 包后播种数据库的问题
- javascript - Jquery 仅在向下滚动时显示 div
- reactjs - React-Redux:连接期间状态为空
- android-ndk - AMediaCodec_dequeueOutputBuffer 很慢,在一台设备上返回 -10000
- c++ - 如何在 RedHat 7 Linux 上编译用 RedHat 5 编写的 c++98 代码
- python - 如何正确使用 scipy tplquad?
- c# - Hpw 我可以将编码的代码“像 00E6' 还原为 C# 中的字符吗