JAX-RS jersey客户端:使用状态代码读取响应

时间:2013-03-03 13:47:02

标签: java web-services rest jersey jax-rs

我使用此代码使用泽西客户端调用泽西JAX-RS服务。

public static void main(String[] args) {
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);

    WebResource service = client.resource(getBaseURI());

    String msg = service.path("rest").path("ExceptionDemo").path("user").queryParam("id", "001").get(String.class);     
    System.out.println(msg);

}

private static URI getBaseURI() {
    return UriBuilder.fromUri("http://localhost:8045/ExceptionHanlding").build();
}

当响应状态代码为200时,此代码可以正常工作。但是对于200以外的任何其他代码,此代码会抛出异常。

如何修改此代码,以便根据响应的状态代码执行某些操作?

1 个答案:

答案 0 :(得分:15)

使用.get(ClientResponse.class)代替.get(String.class)。这抑制了不良状态的例外情况"行为,ClientResponse使您可以访问有关HTTP响应的详细信息。 "Receiving a response"下的用户指南中简要介绍了该行为。