Android:Loopj AsyncHttpClient获取HTTP错误代码

时间:2013-07-10 19:05:59

标签: android http loopj

我正在使用Loopj的AsyncHttpClient来使用JSON数据执行http请求。现在我需要获取从服务器返回的http错误代码。我在哪里可以找到它? 我传递的处理程序如下所示:

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

这根本不可能吗?

2 个答案:

答案 0 :(得分:5)

试试这个:

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

它应该仅适用于状态代码> = 300,因为在loopj中的AysncHttpResponseHandler类中有以下代码

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

答案 1 :(得分:0)

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

如果你想得到异常消息,那么在onFailure方法中尝试 new Exception(throwable).getMessage()