• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

http 来源:KIC 9次浏览

我正在使用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 } 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)