我正在HTTPBuilder
为一个非常通用的 api使用 groovy ,它不仅处理 json。因此,我想自己控制如何反序列化响应。然而,响应处理程序似乎总是将内容类型解析application/json
为映射。我怎样才能获得纯文本(或字节 [])?
def lambda = new HTTPBuilder(lambdaUrl)
lambda.request(method) {
send contentType, payload
response.success = { resp, reader ->
if (log.isDebugEnabled())log.debug("response: $resp")
lambdaResponseStatus = resp.statusLine.statusCode
lambdaResponse = Reader.isAssignableFrom(reader.getClass()) ? reader.text : reader.toString()
}
}
请注意,这reader.toString()
基本上是在 LinkedHashMap 上调用 toString。但我真正想要的只是普通读者,无论我在响应中得到什么内容类型。
不确定这是否有一些不需要的副作用,但最终解决方案就像将所需的内容类型作为请求的一部分传递一样简单。
lambda.request(method, ContentType.BINARY)
...
response.success = { resp, reader -> reader.bytes }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句