我正在尝试为 Groovy 的 RESTClient(围绕 HttpBuilder)编写自己的响应处理程序。如果返回响应正文,我想始终打印响应正文。但是,我找不到一致的方法来做到这一点。
通常,自定义响应处理程序如下所示:
def client = new RESTClient(url)
client.handler.success = { resp, reader ->
//do stuff
}
client.handler.failure = { resp, reader ->
//do stuff
throw new Exception("HTTP call failed. Status code: ${resp.getStatus()}")
}
但是,我注意到变量“reader”可以根据响应具有不同的类。我见过读者是类型groovy.util.slurpersupport.NodeChild
或org.apache.http.conn.EofSensorInputStream
。我希望它是一个可预测的类,所以我实际上可以调用这个对象的方法。这里发生了什么?