JAX-RS jersey-Client: beim Lesen der Antwort mit status-code
Bin ich mit diesem code für den Aufruf einer jersey JAX-RS-service-mit einem jersey-client.
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();
}
Dieser code funktioniert gut, wenn die Response status-code 200. Aber für alles andere als 200 dieser code löst eine Ausnahme aus.
Wie man diesen code ändern so dass auf der Grundlage der status-code der Antwort führt er eine Aktion?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
.get(ClientResponse.class)
statt.get(String.class)
. Unterdrückt die "Ausnahme, die schlechten status" Verhalten, und die ClientResponse gibt Ihnen Zugang zu details über die HTTP-Antwort. Das Verhalten ist kurz beschrieben in der Bedienungsanleitung unter "Antwort".EntityTag e = response.getEntityTag();
. Was ist der nutzen dieser?