2017-12-03 95 views
0

我正在使用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。但是我真正想要的只是普通的讀者,無論我在響應中獲得什麼內容類型。

回答

0

不確定這是否有一些不需要的副作用,但最終解決方案與將想要的內容類型作爲請求的一部分傳遞一樣簡單。

lambda.request(method, ContentType.BINARY) 
... 
response.success = { resp, reader -> reader.bytes } 
相關問題