我相信您想做这样的事情:
Response response = builder.get( Response.class );if ( response.getStatusCode() != Response.Status.OK.getStatusCode() ) { System.out.println( response.getStatusType() ); return null;}return response.readEntity( MyEntity.class );您可以尝试做的另一件事(因为我不知道此API将内容放到哪里-即在标头或实体中还是在什么地方)是:
Response response = builder.get( Response.class );if ( response.getStatusCode() != Response.Status.OK.getStatusCode() ) { // if they put the custom error stuff in the entity System.out.println( response.readEntity( String.class ) ); return null;}return response.readEntity( MyEntity.class );如果您通常希望将REST响应代码映射到Java异常,则可以添加客户端过滤器来执行此操作:
class ClientResponseLoggingFilter implements ClientResponseFilter { @Override public void filter(final ClientRequestContext reqCtx, final ClientResponseContext resCtx) throws IOException { if ( resCtx.getStatus() == Response.Status.BAD_REQUEST.getStatusCode() ) { throw new MyClientException( resCtx.getStatusInfo() ); } ...在上面的过滤器中,您可以为每个代码创建特定的异常,或者创建一种用于包装响应代码和实体的通用异常类型。



