diff options
5 files changed, 44 insertions, 27 deletions
diff --git a/AndroidAsync/project.properties b/AndroidAsync/project.properties index edc832b..fe357b1 100644 --- a/AndroidAsync/project.properties +++ b/AndroidAsync/project.properties @@ -11,7 +11,7 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-19 +target=android-L android.library=true diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClientMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClientMiddleware.java index 2f2e4a8..135ec69 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClientMiddleware.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClientMiddleware.java @@ -5,33 +5,11 @@ import com.koushikdutta.async.DataEmitter; import com.koushikdutta.async.callback.ConnectCallback; import com.koushikdutta.async.future.Cancellable; import com.koushikdutta.async.http.libcore.ResponseHeaders; +import com.koushikdutta.async.util.UntypedHashtable; import java.util.Hashtable; public interface AsyncHttpClientMiddleware { - public static class UntypedHashtable { - private Hashtable<String, Object> hash = new Hashtable<String, Object>(); - - public void put(String key, Object value) { - hash.put(key, value); - } - - public void remove(String key) { - hash.remove(key); - } - - public <T> T get(String key, T defaultValue) { - T ret = get(key); - if (ret == null) - return defaultValue; - return ret; - } - - public <T> T get(String key) { - return (T)hash.get(key); - } - } - public static class GetSocketData { public UntypedHashtable state = new UntypedHashtable(); public AsyncHttpRequest request; @@ -50,11 +28,11 @@ public interface AsyncHttpClientMiddleware { public static class OnBodyData extends OnHeadersReceivedData { public DataEmitter bodyEmitter; } - + public static class OnRequestCompleteData extends OnBodyData { public Exception exception; } - + public Cancellable getSocket(GetSocketData data); public void onSocket(OnSocketData data); public void onHeadersReceived(OnHeadersReceivedData data); diff --git a/AndroidAsync/src/com/koushikdutta/async/util/UntypedHashtable.java b/AndroidAsync/src/com/koushikdutta/async/util/UntypedHashtable.java new file mode 100644 index 0000000..a159d97 --- /dev/null +++ b/AndroidAsync/src/com/koushikdutta/async/util/UntypedHashtable.java @@ -0,0 +1,26 @@ +package com.koushikdutta.async.util; + +import java.util.Hashtable; + +public class UntypedHashtable { + private Hashtable<String, Object> hash = new Hashtable<String, Object>(); + + public void put(String key, Object value) { + hash.put(key, value); + } + + public void remove(String key) { + hash.remove(key); + } + + public <T> T get(String key, T defaultValue) { + T ret = get(key); + if (ret == null) + return defaultValue; + return ret; + } + + public <T> T get(String key) { + return (T)hash.get(key); + } +}
\ No newline at end of file diff --git a/AndroidAsyncTest/project.properties b/AndroidAsyncTest/project.properties index 7e931bf..0b8f301 100644 --- a/AndroidAsyncTest/project.properties +++ b/AndroidAsyncTest/project.properties @@ -11,5 +11,5 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-19 +target=android-L android.library.reference.1=../AndroidAsync diff --git a/AndroidAsyncTest/src/com/koushikdutta/async/test/HttpClientTests.java b/AndroidAsyncTest/src/com/koushikdutta/async/test/HttpClientTests.java index ef80683..33761bf 100644 --- a/AndroidAsyncTest/src/com/koushikdutta/async/test/HttpClientTests.java +++ b/AndroidAsyncTest/src/com/koushikdutta/async/test/HttpClientTests.java @@ -17,9 +17,11 @@ import com.koushikdutta.async.http.AsyncHttpClient; import com.koushikdutta.async.http.AsyncHttpClient.StringCallback; import com.koushikdutta.async.http.AsyncHttpGet; import com.koushikdutta.async.http.AsyncHttpHead; +import com.koushikdutta.async.http.AsyncHttpPost; import com.koushikdutta.async.http.AsyncHttpRequest; import com.koushikdutta.async.http.AsyncHttpResponse; import com.koushikdutta.async.http.ResponseCacheMiddleware; +import com.koushikdutta.async.http.body.JSONObjectBody; import com.koushikdutta.async.http.callback.HttpConnectCallback; import com.koushikdutta.async.http.server.AsyncHttpServer; import com.koushikdutta.async.http.server.AsyncHttpServerRequest; @@ -29,6 +31,8 @@ import com.koushikdutta.async.http.server.HttpServerRequestCallback; import junit.framework.Assert; import junit.framework.TestCase; +import org.json.JSONObject; + import java.io.File; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; @@ -346,4 +350,13 @@ public class HttpClientTests extends TestCase { Future<String> str = AsyncHttpClient.getDefaultInstance().executeString(req, null); assertTrue(TextUtils.isEmpty(str.get(TIMEOUT, TimeUnit.MILLISECONDS))); } + + public void testPostJsonObject() throws Exception { + JSONObject post = new JSONObject(); + post.put("ping", "pong"); + AsyncHttpPost p = new AsyncHttpPost("https://koush.clockworkmod.com/test/echo"); + p.setBody(new JSONObjectBody(post)); + JSONObject ret = AsyncHttpClient.getDefaultInstance().executeJSONObject(p, null).get(); + assertEquals("pong", ret.getString("ping")); + } } |