Php laravel 5.1使用中间件访问传入和传出请求

Php laravel 5.1使用中间件访问传入和传出请求,php,laravel-5.1,Php,Laravel 5.1,我试图使用laravel中的中间件来测量所有传入和传出请求的数据大小。我正在构建一个api。 这将帮助我了解我的应用程序在上传和下载方面使用的互联网数据。 问题是我无法访问从服务器发送到客户端或浏览器的数据,我想这是因为我对laravel不熟悉。 我只想测量从服务器发送到客户机的json数据以及从客户机接收到的所有输入。 当我记录请求时,我没有得到我想要的数据。如何将数据的大小转换为千字节也会很有帮助 <?php namespace App\Http\Middleware; use C

我试图使用laravel中的中间件来测量所有传入和传出请求的数据大小。我正在构建一个api。 这将帮助我了解我的应用程序在上传和下载方面使用的互联网数据。 问题是我无法访问从服务器发送到客户端或浏览器的数据,我想这是因为我对laravel不熟悉。 我只想测量从服务器发送到客户机的json数据以及从客户机接收到的所有输入。 当我记录请求时,我没有得到我想要的数据。如何将数据的大小转换为千字节也会很有帮助

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Response;
use Log;


class MeasureDataSizeMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }

    public function terminate($request, $response)
    {
// measure the size
    //store the data into a database of incoming and outgoing request.
     //Log::info('app.requests', ['request' => $request, 'response' => new Response($response)]);

       }
    }

我不明白什么不起作用?为什么在事件中你可以测量,但在中间件中你不能?给我们一些php代码,错误,数据只是说它不工作是不正确的helping@AmirBar我无法使用事件实现结果。我只是认为,因为它将应用于每个请求,所以事件不是必需的,而是一个中间件。感谢您有时间阅读本文。为什么您需要测量传入的数据量?在测量该值时,内存已经分配。此大小始终存在于名为
内容长度
的HTTP头中。最好的方案是修改您的http服务器(希望nginx在这方面做得更好),然后在那里设置适当的指标(您可以拒绝大于某个值的请求,这样它们就永远不会到达您的应用程序)。@Mjh它用于测量上传和下载的互联网使用情况。它与任何复杂的东西都无关。我正在为客户端构建应用程序,希望客户端在发出和接收请求时了解应用程序在互联网上的使用情况。但是-关于主题:为了解决您遇到的问题-您是否注册了您创建的中间件?它看起来不像你,这就是为什么它没有被调用。