// Some setup steps
ResteasyProviderFactory factory = new ResteasyProviderFactory();
factory.registerProvider(com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider.class);
Client client = ClientBuilder.newClient(new ClientConfiguration(factory));
WebTarget target = client.target(webappURL.toURI() + "api/v1");
resteasyWebTarget = (ResteasyWebTarget) target;
// the real request
MyApiController myApiController = resteasyWebTarget.proxy(MyApiController.class);
ClientResponse response = (ClientResponse) myApiController.doSomeStuff();
上面的代码很好用,但是我真的想知道当实际的HTTP请求和实际的HTTP响应发生什么情况时,
myApiController.doSomeStuff();
被执行。
我想知道最好的方法是捕获并记录“原始”请求以及捕获并记录“原始” http响应。我只对resteasy-client 3.0.2的解决方案感兴趣。
谢谢!
最佳答案
不知道如何在一切顺利的情况下获取它(响应代码200),但是如果服务器返回了其他任何内容,则会抛出ClientErrorException的子类型,该子类型使您可以访问响应/状态代码/实体(消息主体)等。
try {
myApiController.doSomeStuff();
} catch (BadRequestException ce) {
// Handle
} catch (ClientErrorException e) {
MyErrorObject obj = ce.getResponse().readEntity(MyErrorObject.class);
// Handle
}