2013-07-10 60 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处方法