我已经为节点js其余服务调用集成了android volley lib。如果我获得响应成功,它将返回状态代码200和正在运行的响应JSON对象。
但是,如果我得到任何与400(401,409等)和500(500,504等)相关的错误,则它不会显示来自服务的错误响应,而是显示
Volley.error(服务发送{status:false,message:"enter password"}
此错误对象,但我无法阅读此消息)。
如何使用volley lib读取来自node js服务的错误响应。
答案 0 :(得分:0)
在onErrorResponse()方法中,编写以下代码:
NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null && networkResponse.data != null) {
try {
String jsonError = new String(networkResponse.data);
Log.d(TAG, "jsonError: " + jsonError);
JSONObject errorObject = new JSONObject(jsonError);
// Here you can do whatever you want with JSONError.
Snackbar snackbar = Snackbar.make(mActivitySingleSellerBinding.relativeLayoutRoot, errorObject.getString("message"), Snackbar.LENGTH_LONG);
snackbar.show();
} catch (JSONException e) {
e.printStackTrace();
}
}
此errorObject.getString("message");
将为您提供错误字符串。