排球离线工作

Volley Offline Working

实现 volley json 响应的方法 cache.I 尝试了以下方法从 volley.i 获得响应 correctly.I 不知道如何存储这些 json 将值放入 volley 缓存中

StringRequest strReq = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {

                @Override
                public void onResponse(String response) {
                    System.out.println("mainresp$$$"+response);
                    Log.d("Volley Request Success", response.toString());
                    result=response;
                    callback.onSuccess(result);


                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("volley request Error",
                    "Error: " + error.getMessage());

        }
    }) {

        @Override
        protected Map<String, String> getParams() {


            return params;
        }

    };

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(strReq, tag_string_req);

连同我的评论,您已经阅读了我对以下问题的回答:

我刚刚测试了POST请求,如下代码:

        CacheRequest cacheRequest = new CacheRequest(Request.Method.POST, url, new Response.Listener<NetworkResponse>() {
            @Override
            public void onResponse(NetworkResponse response) {
                try {
                    final String jsonString = new String(response.data,
                            HttpHeaderParser.parseCharset(response.headers));
                    // Check if it is JSONObject or JSONArray
                    Object json = new JSONTokener(jsonString).nextValue();
                    JSONObject jsonObject = new JSONObject();
                    if (json instanceof JSONObject) {
                        jsonObject = (JSONObject) json;
                    } else if (json instanceof JSONArray) {
                        jsonObject.put("success", json);
                    } else {
                        String message = "{\"error\":\"Unknown Error\",\"code\":\"failed\"}";
                        jsonObject = new JSONObject(message);
                    }
                    textView.setText(jsonObject.toString(5));                        
                } catch (UnsupportedEncodingException | JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // do something...
            }
        });

我的示例Asp.Net Web API代码如下:

        // POST api/<controller>
        public IHttpActionResult Post()
        {
            string jsonString = "[" +
                                     "{" +
                                         "name: \"Person 1\"," +
                                         "age: 30," +
                                         "type: \"POST\"," +
                                     "}," +
                                     "{" +
                                         "name: \"Person 2\"," +
                                         "age: 20," +
                                         "type: \"POST\"," +
                                     "}," +
                                     "{" +
                                         "name: \"Person 3\"," +
                                         "age: 40," +
                                         "type: \"POST\"," +
                                     "}" +
                                "]";            
            JArray jsonObj = JArray.Parse(jsonString);
            return Ok(jsonObj);
        }

这是结果截图