【问题标题】:Grails populate params with XML from POST requestGrails 使用来自 POST 请求的 XML 填充参数
【发布时间】:2012-06-19 14:01:50
【问题描述】:

我有一个通过 grails 控制器公开的 RestFull grails api。 我需要自动绑定 POST 请求中发送的 xml 数据。 我认为使用 groovy bindData(object,params) 不起作用,因为 params 引用似乎没有 xml 元素。我在 UrlMappings 中使用 parseRequest=true,但 params 对象没有 xml 元素。

我是否缺少其他一些配置,以便我的 params 对象自动填充 xml 正文元素?

【问题讨论】:

    标签: grails


    【解决方案1】:

    似乎正确的方法是使用:

    request.reader.text
    

    获取原始 xml。其他方法对我来说并不成功。

    【讨论】:

    • 填充参数怎么样?这是 OP 的问题。
    【解决方案2】:

    request.XML 是持有从 XML 请求解析的元素的对象

    查看控制器可用的 request 变量。

    【讨论】:

    • 是的,我知道 request.XML,但它在链接中有一个严重的问题。我无法以正确的格式获取 request.XML.toString()。并且这里的解决方案没有帮助stackoverflow.com/q/7096648/497984
    • 你知道获取 request.XML 字符串的方法吗?我尝试了 request.reader.text ,但是当我从远程客户端发送 POST 请求时,这个也引起了问题。已经调用了诸如 getInputStream() 之类的错误。
    • 那么,您想要原始 XML 吗?不是解析的?
    • raw 对我来说更好,因为我想用它做一些通用对象绑定工作。我编写了一个绑定方法,可以在不知道 xml 的真实结构的情况下绑定任何 xml 字符串。这就是为什么我需要原始 xml。一种覆盖request.XML.toString() 以获取原始xml 的干净方法将非常有用。
    • 如果您想要原始 XML,请尽量不要导入 grails.converters.* 并在映射中使用 parseRequest=false。如果这仍然不起作用,请在配置中禁用 xml mime 类型
    猜你喜欢
    • 2016-10-17
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多