如何获得 Groovy RestClient 失败响应的完整响应
How to get complete response for Groovy RestClient failed response
目前,我收到 HttpResponseException,它只有 statusCode。
我怎样才能得到完整的回复?
这是我正在使用的代码
restClient = new RESTClient("http://${Server}")
try {
HttpResponseDecorator resp = restClient.post(path,body,requestContentType)
as HttpResponseDecorator
return JSONObject.fromObject(resp.getData()).get("topKey","");
}
catch (HttpResponseException e) {
error(e.toString())
}
而且它只输出这个:
[oaf.error] groovyx.net.http.HttpResponseException: Internal Server Error
添加自定义失败响应处理程序:
restClient = new RESTClient("http://${Server}")
restClient.handler.failure = { resp, data ->
resp.setData(data)
String headers = ""
resp.headers.each {
headers = headers+"${it.name} : ${it.value}\n"
}
throw new HttpResponseException(resp.getStatus(),"HTTP call failed. Status code: ${resp.getStatus()}\n${headers}\n"+
"Response: "+(resp as HttpResponseDecorator).getData())
}
实际上,您可以从抛出的异常中提取完整的响应。例如,如果您捕获的异常是 e
并且响应正文 JSON 应该包含一个名为 myCustomErrorCode
的字段,您可以通过查看 e.response.data.myCustomErrorCode
除了 [=13] 来检查它的值=].
目前,我收到 HttpResponseException,它只有 statusCode。 我怎样才能得到完整的回复?
这是我正在使用的代码
restClient = new RESTClient("http://${Server}")
try {
HttpResponseDecorator resp = restClient.post(path,body,requestContentType)
as HttpResponseDecorator
return JSONObject.fromObject(resp.getData()).get("topKey","");
}
catch (HttpResponseException e) {
error(e.toString())
}
而且它只输出这个:
[oaf.error] groovyx.net.http.HttpResponseException: Internal Server Error
添加自定义失败响应处理程序:
restClient = new RESTClient("http://${Server}")
restClient.handler.failure = { resp, data ->
resp.setData(data)
String headers = ""
resp.headers.each {
headers = headers+"${it.name} : ${it.value}\n"
}
throw new HttpResponseException(resp.getStatus(),"HTTP call failed. Status code: ${resp.getStatus()}\n${headers}\n"+
"Response: "+(resp as HttpResponseDecorator).getData())
}
实际上,您可以从抛出的异常中提取完整的响应。例如,如果您捕获的异常是 e
并且响应正文 JSON 应该包含一个名为 myCustomErrorCode
的字段,您可以通过查看 e.response.data.myCustomErrorCode
除了 [=13] 来检查它的值=].