首页 > 解决方案 > GRAILS URL 参数短格式

问题描述

我知道在 GRAILS/GROOVY

def content=urlrestservicestring.toURL().getBytes(requestProperties: ['User-Accepted': username])

是包含所有字节内容(例如 PDF 下载)的简短形式,但我不知道 URL 可用于更丰富连接的所有请求属性,例如带有有效负载的 POST 方法(这是一个 GET 调用) json。可能吗?以何种方式?

标签: urlpostgrailsgroovyparameters

解决方案


看起来requestProperties您只能设置请求标头,这可能有助于简单的情况。

另一方面,如果你想做一些更复杂的事情,比如 POST,你必须使用适当的 HTTP 客户端。

在 Groovy 中有一个惯用的HTTPBuilder,它非常简单易用,或者 Grails 自己的RESTBuilder

更新:

使用 HTTPBuilder 下载可能如下所示:

import static groovyx.net.http.HttpBuilder.configure

configure {
    request.uri = "http://example.org/download"
    request.contentType = 'application/json'
}.post {
    request.headers.username = 'Scarpanti'
    request.body = [ some:'json' ]
    
    Download.toStream delegate, response.outputStream // from grails
//  or
//  Download.toStream delegate, file
}

另见参考文档


推荐阅读