// 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.Final或类似的解决方案感兴趣...
谢谢!
答案 0 :(得分:1)
如果一切顺利(响应代码200),不确定如何获取它,但是如果服务器返回任何其他内容,则使用ClientErrorException的子类型,它允许您访问响应/状态代码/实体(消息体)等扔了。
try {
myApiController.doSomeStuff();
} catch (BadRequestException ce) {
// Handle
} catch (ClientErrorException e) {
MyErrorObject obj = ce.getResponse().readEntity(MyErrorObject.class);
// Handle
}