Android中的排球错误响应为空?

时间:2016-07-01 09:11:47

标签: android android-volley

我使用了凌空库来获取API响应。最初在调用API时,错误响应完全显示在服务器上。但当我再次调用API意味着我得到错误响应是null。 请帮助我这样做。

这是我的代码

 public void requestString(final String requestName,
                              final String webserviceUrl,
                              final Map<Object, Object> requestParams, final int webMethod,
                              final boolean getCache) {
        LogUtils.i("Sending Request", webserviceUrl);
        StringRequest stringRequest = new StringRequest(webMethod,
                webserviceUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                LogUtils.i("Response", response);
                mRequestCompletedListener.onRequestCompleted(
                        requestName, true, response, null);
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {

                String errorResponse = null;

                if (getCache) {
                    final Cache cache = AppController.getInstance()
                            .getRequestQueue().getCache();
                    final Entry entry = cache.get(webserviceUrl);
                    if (entry.data != null) {
                        try {
                            errorResponse = new String(entry.data, "UTF-8");

                            mRequestCompletedListener
                                    .onRequestCompleted(requestName,
                                            true, errorResponse, null);
                            return;
                        } catch (UnsupportedEncodingException e) {
                            LogUtils.e(TAG, e);
                        }
                    } else {
                        LogUtils.e(TAG, requestName
                                + " Cache does not exist");
                    }
                }
                try {
                    VolleyError responseError = new VolleyError(
                            new String(error.networkResponse.data));
                    LogUtils.i("ErrorResponse", responseError.getMessage());
                    try {
                        if (responseError != null) {
                            final JSONObject responseJson = new JSONObject(responseError.getMessage());
                            // Show Alert Information
                            errorResponse = responseJson.getString(AppConstants.MESSAGE);
                        }
                    } catch (Exception e) {
                        errorResponse = "Unknown";
                    }
                } catch (Exception e) {
                    LogUtils.e(TAG, e);
                }
                mRequestCompletedListener.onRequestCompleted(
                        requestName, false, null,
                        errorResponse);
            }
        }) 
  stringRequest.setTag(requestName);
        // Adding String request to request queue
        AppController.getInstance().addToRequestQueue(stringRequest);
    }

这是通过Params:

 AppController.getInstance().requestApi(mVolleyRequest, REQUEST_NAME, PATH
                                + API, Request.Method.POST, HTTP_POST, Request.Priority.HIGH
                        , false, out.toString().trim(), true);

0 个答案:

没有答案