从Grails中的@Context HttpServletRequest请求中获取一个新的request.getInputStream()

时间:2014-06-14 06:07:43

标签: java grails request jersey inputstreamreader

我无法看到当我在某个链中读取它时我是如何从流中读取的。

这是我的功能

@POST
        @Consumes(["application/json"])
        public Response addGift(@Context HttpServletRequest request,@QueryParam("from") int from,
                @ApiParam(value = "Indiviual Gift object to be inserted", required = true)  posiba.api.v1.IndividualGift gift) {
        return Response.ok().entity("{\"Submit\": \"Success\"}").build();

    }

我有一个json数据POST(有效负载,正文)和一个queryparam(用于测试)

请求变量可以访问参数但是当我尝试从流中读取时

stream.available()返回0,如果我尝试从流中获取任何内容,则关闭它。

有没有一种内联覆盖输入流阅读器的方法,所以链上的任何内容都不会从中读取,我可以在本地使用它。

1 个答案:

答案 0 :(得分:0)

自己解决了 - 这有点像黑客的方式----

目标是在我的grails应用程序中使用swagger UI,所以我有一个方法(如上所示)告诉swagger有关参数和所需等...然后我做了一个单独的函数接受请求并做我的自定义处理它

@POST
    @Consumes(["application/json"])
    public Response addGiftt(@Context HttpServletRequest request, InputStream requestBody){
//stuff...
    }