10

我正在使用此代码使用 jersey 客户端调用 jersey 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 以外的任何内容,此代码都会引发异常。

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

4

1 回答 1

20

使用.get(ClientResponse.class)而不是.get(String.class). 这抑制了“异常状态异常”行为,并且ClientResponse使您可以访问有关 HTTP 响应的详细信息。该行为在“接收响应”下的用户指南中进行了简要描述。

于 2013-03-03T13:52:33.667 回答