如何使用Grails知道响应拦截器中有效载荷的大小

时间:2019-01-23 08:23:14

标签: spring grails interceptor

我正在为我的项目使用grails spring boot。而且我也在使用拦截器和过滤器。目前,我有一个测试用例,其中包含响应数据的大小。为此,在拦截器中,我集成了grails拦截器的after方法。在调试时,我没有找到任何方法来知道我从控制器发送的数据大小。例如

    class RestController {
         def show  {
            def data = [:]
            data.put("object", "some data objects " );

            withFormat {
                json {
                    render wrapper as JSON
                }
            }

        }
    }

//拦截器。

    class RestInterceptor {

        RestInterceptor(){
            match(controller:"rest", action:"*")
        }

        boolean before() {
            println( request)
            true }

        boolean after() {
            println response
            true
        }

        void afterView() {
            // no-op
        }
    }

在响应对象中,他们不是知道内容长度的任何方法。但是,我可以在请求对象中看到相同的内容。请提出建议。

1 个答案:

答案 0 :(得分:1)

after方法在调用控制器动作之后且呈现视图之前执行。如果您想检查model中的内容,可以使用after方法来执行,但这并不能真正告诉您响应内容的大小。如果需要后者,则可能要使用afterView而不是after