2014-12-23 4 views
2

저는 발리 프레임 워크를 사용하여 서버에서 json 응답을 검색하지만 서버에서 json을로드 할 때마다 발리 프레임 워크를 사용합니다. 이 json 응답을 오프라인에서 사용하고 새로운 응답과 동기화하기 위해 어떻게 캐시 할 수 있습니까? 다음은발리를 사용하여 캐싱 json 응답

  // Creating volley request obj 
     JsonArrayRequest Req = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 
         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 
          try {  
           JSONObject obj = response.getJSONObject(i); 
           MainPojo test = new MainPojo(); 
           String name = obj.getString("facility_name");         
           test.setName(name);         
           //test.setUrl(obj.getString("easyurl"));         
           testList.add(test); 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          }  
         }  
         // notifying list adapter about data changes 
         // so that it renders the list view with updated data 
         mAdapter.notifyDataSetChanged(); 
        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         VolleyLog.d(TAG, "Error: " + error.getMessage());      

        } 
       }) 
       {    
      //** 
      // Passing some request headers 
       //* 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> headers = new HashMap<String, String>(); 
       headers.put("Cookie", MainActivity.sharedpreferences.getString(savedCookie, ""));     
       headers.put("Set-Cookie", MainActivity.sharedpreferences.getString(savedCookie, "")); 
       headers.put("Content-Type", "application/x-www-form-urlencoded");     
       //headers.put("Content-Type","application/json"); 
       headers.put("Accept", "application/x-www-form-urlencoded");     
       return headers; 
      } 
     }; 
     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(Req); 
    } 

날 내가 JSON 응답을 어쩌면

+0

내 솔루션이 좋지 않을 것 같습니다. 왜냐하면 발리가 필요할 때 업데이트 할 수 없으므로 시도해보고 자체 업데이트 여부를 확인하기 위해 볼록을 업데이트 할 때 볼 수있는 헤더를 추가 할 수 있습니다. – mmlooloo

+0

헤더가 이미 추가되었습니다. 유일한 문제는 서버에서 업데이트를 사용할 수있을 때만 응답을 캐시하고 동기화하는 것입니다. – ABI

답변

0

내가 모르는 뭔가가 있지만 사용하려고 해요 공유 환경 설정을 캐시 무엇을해야하는지 알려 주시기 바랍니다 서버에서 JSON 응답을 검색하는 내 코드입니다