我正在使用Loopj的AsyncHttpClient来使用JSON数据执行http请求。现在我需要获取从服务器返回的http错误代码。我在哪里可以找到它? 我传递的处理程序如下所示:
new JsonHttpResponseHandler()
{
@Override
public void onFailure(Throwable throwable, JSONObject object)
{
// Get error code
}
}
这根本不可能吗?
答案 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()