aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsyncSample
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2015-02-15 10:58:12 -0800
committerKoushik Dutta <koushd@gmail.com>2015-02-15 10:58:12 -0800
commit520640b53a8b9717095bf38dfb361d297fc31ad4 (patch)
tree483ceb63bc4ed37f0401b2e436bf91cc6beb7639 /AndroidAsyncSample
parent81a3c9f8f9ab85b7c6c6237d113617522b9209cd (diff)
downloadAndroidAsync-520640b53a8b9717095bf38dfb361d297fc31ad4.tar.gz
AndroidAsync-520640b53a8b9717095bf38dfb361d297fc31ad4.tar.bz2
AndroidAsync-520640b53a8b9717095bf38dfb361d297fc31ad4.zip
cache middleware sample
Diffstat (limited to 'AndroidAsyncSample')
-rw-r--r--AndroidAsyncSample/src/com/koushikdutta/async/sample/middleware/CacheOverrideMiddleware.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/AndroidAsyncSample/src/com/koushikdutta/async/sample/middleware/CacheOverrideMiddleware.java b/AndroidAsyncSample/src/com/koushikdutta/async/sample/middleware/CacheOverrideMiddleware.java
new file mode 100644
index 0000000..86d65ff
--- /dev/null
+++ b/AndroidAsyncSample/src/com/koushikdutta/async/sample/middleware/CacheOverrideMiddleware.java
@@ -0,0 +1,44 @@
+package com.koushikdutta.async.sample.middleware;
+
+import android.text.TextUtils;
+import android.util.Base64;
+
+import com.koushikdutta.async.http.AsyncHttpClient;
+import com.koushikdutta.async.http.AsyncHttpClientMiddleware;
+import com.koushikdutta.async.http.SimpleMiddleware;
+
+import java.util.Hashtable;
+
+/**
+ * Created by koush on 2/15/15.
+ */
+public class CacheOverrideMiddleware extends SimpleMiddleware {
+ // insert this using
+ public static CacheOverrideMiddleware add(AsyncHttpClient client) {
+ CacheOverrideMiddleware ret = new CacheOverrideMiddleware();
+ // add this first so it gets called before everything else
+ client.getMiddleware().add(0, ret);
+ return ret;
+ }
+
+ @Override
+ public void onHeadersReceived(OnHeadersReceivedDataOnRequestSentData data) {
+ super.onHeadersReceived(data);
+
+ // do more checking here, since uri may not necessarily be http or have a host, etc.
+ String cache = cacheHeaders.get(data.request.getUri().getHost());
+ if (!TextUtils.isEmpty(cache))
+ data.request.setHeader("Cache-Control", cache);
+ }
+
+ Hashtable<String, String> cacheHeaders = new Hashtable<String, String>();
+
+ /**
+ * Override cache-control directives
+ * @param host
+ * @param cacheControl a Cache-Control value, like "max-age=300" to cache for 5 minutes
+ */
+ public void setCacheControlForHost(String host, String cacheControl) {
+ cacheHeaders.put(host, cacheControl);
+ }
+}