2011-06-28 33 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'。 –