package in.srain.cube.demo.datamodel;
import in.srain.cube.demo.event.EventCenter;
import in.srain.cube.demo.event.MsgDataEvent;
import in.srain.cube.demo.request.API;
import in.srain.cube.demo.request.DemoCacheRequest;
import in.srain.cube.request.*;
public class CacheAbleRequestData {
public static void getImage(boolean useCacheAnyway, boolean disableCache) {
DemoCacheRequest<JsonData> request = new DemoCacheRequest<JsonData>();
CacheAbleRequestHandler<JsonData> handler = new CacheAbleRequestDefaultHandler<JsonData>() {
@Override
public JsonData processOriginData(JsonData jsonData) {
EventCenter.getInstance().post(new MsgDataEvent("processOriginData"));
return jsonData;
}
@Override
public void onCacheAbleRequestFinish(JsonData data, CacheAbleRequest.ResultType type, boolean outOfDate) {
EventCenter.getInstance().post(new MsgDataEvent(
"onCacheAbleRequestFinish, result type: %s, out of date: %s", type, outOfDate));
EventCenter.getInstance().post(new MsgDataEvent(
"time: %s", data.optJson("data").optString("time")));
}
@Override
public void onCacheData(JsonData data, boolean outOfDate) {
super.onCacheData(data, outOfDate);
EventCenter.getInstance().post(new MsgDataEvent(
"onCacheData, out of date: %s", outOfDate));
}
@Override
public void onRequestFail(FailData failData) {
}
};
request.setCacheAbleRequestHandler(handler);
request.setUseCacheAnyway(useCacheAnyway);
request.setTimeout(1000);
String cacheKey = "api/get-server-time";
request.setCacheTime(30).setCacheKey(cacheKey);
request.setDisableCache(disableCache);
request.getRequestData().setRequestUrl(API.API_GET_IMAGE);
request.send();
}
}