Android:Loopj AsyncHttpClient获取HTTP错误代码



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

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

这根本不可能吗?

试试这个:

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

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

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

查看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()

相关内容

  • 没有找到相关文章

最新更新