我正在将Volley用于我的Android应用程序以从服务器中获取数据。除了处理我的服务器中的错误时,它都能正常工作。发生错误时,我的服务器将发送以下响应:
{
"status": 400,
"message": "Errors (2): A name is required- Julien is already used. Not creating."
}
我的目标是获取消息,然后将其显示在中Toast
。我遵循了一些示例,以了解如何执行此操作,但是它不起作用。
有我的错误监听器:
public void onErrorResponse(VolleyError error) {
int statusCode = error.networkResponse.statusCode;
NetworkResponse response = error.networkResponse;
Log.d("testerror",""+statusCode+" "+response.data);
// Handle your error types accordingly.For Timeout & No connection error, you can show 'retry' button.
// For AuthFailure, you can re login with user credentials.
// For ClientError, 400 & 401, Errors happening on client side when sending api request.
// In this case you can check how client is forming the api and debug accordingly.
// For ServerError 5xx, you can do retry or handle accordingly.
if( error instanceof NetworkError) {
} else if( error instanceof ClientError) {
} else if( error instanceof ServerError) {
} else if( error instanceof AuthFailureError) {
} else if( error instanceof ParseError) {
} else if( error instanceof NoConnectionError) {
} else if( error instanceof TimeoutError) {
}
showProgress(false);
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
我的调试器的结果是: testerror:400 [B @ 430b8d60
编辑:此外,我的error.getMessage()为null。
所以我不明白为什么我的变量response.data不是服务器的响应。
如果有人知道我如何从服务器获取消息,那就太好了。
谢谢,