泽西客户端获取错误消息正文

Lyn*_*nAs 2 java jax-rs jersey-client

我使用以下代码来使用休息服务

Client client = ClientBuilder.newClient();
WebTarget target = client.target("wrong url");
Invocation.Builder builder = target.request(MediaType.APPLICATION_JSON);
Response response = builder.post(Entity.entity(param, MediaType.APPLICATION_JSON), Response.class);
Run Code Online (Sandbox Code Playgroud)

正如所料,我收到了错误.和状态代码400 Bad Request.但我没有收到错误消息.当我运行时response.getStatusInfo()我得到了错误的请求,但我的服务器发送了额外的信

当我使用postman我在Body窗口中获取错误信息时调用它.

那么如何从响应对象中获取此错误正文信息?或任何其他方式???

dur*_*dur 6

您可以像往常一样使用Response#readEntity获取响应正文:

使用MessageBodyReader支持将消息实体流映射到请求的类型的消息实体输入流作为指定Java类型的实例读取.

例:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("wrong url");
Invocation.Builder builder = target.request(MediaType.APPLICATION_JSON);
Response response = builder.post(Entity.entity(param, MediaType.APPLICATION_JSON), Response.class);
String body = response.readEntity(String.class);
Run Code Online (Sandbox Code Playgroud)

使用Response#getStatusInfo,您只能获得HTTP 状态,原因短语.