如何在Grails中访问POST的正文内容?

时间:2010-04-07 21:45:12

标签: grails

我正在尝试阅读Grails请求的正文内容,并将请求映射到params,即使我已经注释掉了grails.mime.types。我也尝试过设置grails.mime.types并清空地图,它仍在映射。

正文内容为xml,当Grails映射时,密钥最终为“<?xml version”。不幸的是,发送POST的系统将内容类型设置为 application / x-www-form-urlencoded 。我无法控制他们改变它。

我正在运行Grails 1.2.1。

我也尝试在我的UrlMappings中设置format =“xml”并将表单内容类型添加到xml mime.types中,但这也没有帮助。当我尝试访问request.reader时,它是空的。

2 个答案:

答案 0 :(得分:0)

尝试在映射中启用“parseRequest”。

来自docs:“除非您在URL映射中指定parseRequest参数,否则Grails不会为您提供自动XML或JSON封送处理。”

答案 1 :(得分:0)

如果您想直接访问request.reader而不是将XML解组为域对象,请尝试关闭parseRequest,如下所示:

类UrlMappings {

static mappings = {
    "/$controller/$action?/$id?"(parseRequest:false){
        constraints {
            // apply constraints here
        }
    }

    "/"(view:"/index")
    "500"(view:'/error')
}

}

我从http://margotskapacs.com/2013/04/request-automatic-parsing-in-grails/

获得了此解决方案