2013-07-10 1 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(); 

그것은 때문에 loopj

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

에 AysncHttpResponseHandler 클래스의 코드를 다음과 만 상태 코드> = 300을 위해 일해야한다 (client.post 봐주세요 null, url, 엔티티, "application/json", responseHandler);

선언 방법은 onFailure 방법에) 아래에 주어진 당신은 당신이

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; 
      } 
     }); 

을 상태 코드를 얻을 것이다 그리고 당신은 예외 메시지를 얻으려면 다음 새로운 예외 (throw 가능 객체) .getMessage을 (시도로