2011-06-28 27 views
3

我有以下问题...泽西岛没有显示的情况下,它的响应

我测试一个服务,返回GET请求的HTTP响应。

我的问题是,我想查看响应,即使它是一个HTTP 500/404或任何响应。

我想查看一下。但我不能,因为它引发了一个异常,就是这样。

即使它是一个错误响应,有没有办法查看球衣响应?

我的代码是这样的:

webResource = client.resource(url); 

response = webResource.queryParams(alertParams) 
     .header("x-token", token).get(String.class); 

所以当GET接收来自服务的错误回应,我将无法查看,虽然反应是这样的:

{ “ERRCODE “: ”ERR002“, ”ERRMSG“: ”“, ”techErrMsg“: ”LoginFailureGeneric“ }

这是一个400错误的请求。

非常感谢所有的帮助!

回答

7

这就是您需要花费一些时间处理文档的地方......如果您试图将响应解析为除ClientResponse以外的其他任何内容,则WebRequest#get(Class)将在您收到HTTP错误状态时抛出异常。

因此,您只需更改.get(String.class) - >.get(ClientResponse.class),并且您可以将ClientResponse对象的实体本身(以及状态和其他所有内容)从异常中解除。

+0

太棒了!谢谢,对我来说这是一个很好的教训,让我看看Docs更多!!!!!!!坦克! – Hannibal

+1

我使用的是Jersey 2.5.1,如果我调用'get(Response.class)',这只适用于'JerseyTest'。 –