2013-07-10 57 views
1

我正在使用Loopj的AsyncHttpClient使用JSON數據執行http請求。現在我需要獲取從服務器返回的http錯誤代碼。我在哪裏可以找到? 我傳的處理程序是這樣的:Android:Loopj AsyncHttpClient獲取HTTP錯誤代碼

new JsonHttpResponseHandler() 
{ 
    @Override 
    public void onFailure(Throwable throwable, JSONObject object) 
    { 
     // Get error code 
    } 
} 

這是不可能的呢?

回答

5

試試這個:

HttpResponseException hre = (HttpResponseException) throwable; 
int statusCode = hre.getStatusCode(); 

它應該只對狀態碼> = 300,因爲在循環J

if(status.getStatusCode() >= 300) { 
    sendFailureMessage(new HttpResponseException(status.getStatusCode(), status.getReasonPhrase()), responseBody); 
} 
0

在AysncHttpResponseHandler類下面的代碼的給看看client.post( null,url,entity,「application/json」,responseHandler);如在下面給出

申報方法,你會你會得到狀態代碼

RestClientAvaal.post(url, entity, new BaseJsonHttpResponseHandler<>() { 
      @Override 
      public void onSuccess(int statusCode, Header[] headers, String rawJsonResponse, Object response) { 

      } 

      @Override 
      public void onFailure(int statusCode, Header[] headers, Throwable throwable, String rawJsonData, Object errorResponse) { 

      } 

      @Override 
      protected Object parseResponse(String rawJsonData, boolean isFailure) throws Throwable { 
       return null; 
      } 
     }); 

如果你想獲得異常信息,然後嘗試新的異常(拋出).getMessage()在onFailure處方法