面对android volley lib错误响应问题

时间:2019-02-08 12:37:51

标签: android node.js android-volley

我已经为节点js其余服务调用集成了android volley lib。如果我获得响应成功,它将返回状态代码200和正在运行的响应JSON对象。 但是,如果我得到任何与400(401,409等)和500(500,504等)相关的错误,则它不会显示来自服务的错误响应,而是显示 Volley.error(服务发送{status:false,message:"enter password"} 此错误对象,但我无法阅读此消息)。 如何使用volley lib读取来自node js服务的错误响应。

1 个答案:

答案 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");将为您提供错误字符串。