如何停止HTTPBuilder解析特定的内容类型,如应用程序/ json

我正在使用groovy HTTPBuilder为一个非常通用的api,它不仅处理json。因此,我想控制自己的反应是如何反序列化的。但是,似乎响应处理程序始终将内容类型application/json解析为映射。我怎样才能得到纯文本(或字节[])?如何停止HTTPBuilder解析特定的内容类型,如应用程序/ 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 }

以上是 如何停止HTTPBuilder解析特定的内容类型,如应用程序/ json 的全部内容, 来源链接: utcz.com/qa/260229.html

回到顶部