从Grails 1.1.x开始,他们已经支持REST请求的XML和JSON解码。我似乎无法在2.1.0版中使用此功能。这是我用来测试功能的示例项目中的相关文件:
static mappings = {
"/$action/$id?"(controller:'verification',parseRequest:true)
"/"(view:"/index")
"500"(view:'/error')
}
class Tester {
String name
String vendor
String toString() {
return "$name $vendor"
}
}
class VerificationController {
def save() {
Tester tester = new Tester(params.tester)
log.error "Tester = ${tester}"
log.error "Request XML = ${request.XML}"
}
}
<?xml version="1.0" encoding="utf-8"?>
<tester>
<name>Windows</name>
<vendor>Microsoft</vendor>
</tester>
当我传递XML时, Controller 日志语句输出以下内容:
Tester = null null
Request XML = WindowsMicrosoft
我的困惑在于为什么将其识别为XML(通过将其放入请求的XML字段中)但不会解析它并将其放入 here定义的参数中
请您参考如下方法:
经过几个小时的尝试,我发现了一个解决方案。
我的问题是我在REST调用中没有定义内容类型。
因此,如果将content-type: application/xml添加到其余调用中,它应该可以工作。




