我使用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()