如何停止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