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 응답을 어쩌면
내 솔루션이 좋지 않을 것 같습니다. 왜냐하면 발리가 필요할 때 업데이트 할 수 없으므로 시도해보고 자체 업데이트 여부를 확인하기 위해 볼록을 업데이트 할 때 볼 수있는 헤더를 추가 할 수 있습니다. – mmlooloo
헤더가 이미 추가되었습니다. 유일한 문제는 서버에서 업데이트를 사용할 수있을 때만 응답을 캐시하고 동기화하는 것입니다. – ABI