diff --git a/src/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java b/src/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java index ce58f6e..2faeae2 100644 --- a/src/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java +++ b/src/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java @@ -6,6 +6,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; @@ -17,7 +18,10 @@ private String queryParams = ""; private String pathParams = ""; private String formParams = ""; + private String Json = ""; private int responseCode; + private ArrayList keys = new ArrayList<>(); + private ArrayList values = new ArrayList<>(); private String method; private static String clientSessionID = null; @@ -50,6 +54,11 @@ this.method = method; } + public void setRequestPropertie(String key, String value) { + keys.add(key); + values.add(value); + } + // request public void doAnything() { try { @@ -62,10 +71,20 @@ } conn.setReadTimeout(10000 /* milliseconds */); conn.setConnectTimeout(15000 /* milliseconds */); - conn.addRequestProperty("Content-type", "application/json"); + addRequestProperties(keys, values); // POST or GET or PUT or DELETE conn.setRequestMethod(method); - + if (Json.length() > 0) { + conn.setDoOutput(true); + if (clientSessionID != null) { + conn.setRequestProperty("Cookie", clientSessionID); + } + OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream()); + out.write(Json); + out.flush(); + out.close(); + Json = ""; + } if (formParams.length() > 0) { conn.setDoOutput(true); if (clientSessionID != null) { @@ -171,9 +190,12 @@ pathParams += "/" + param; } - private void addRequestProperties(ArrayList key, ArrayList value) { - for (int i = 0; i < key.size(); i++) { - conn.addRequestProperty(key.get(i), value.get(i)); + private void addRequestProperties(ArrayList keys, ArrayList values) { + if (keys.size() == 0) { + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + } + for (int i = 0; i < keys.size(); i++) { + conn.addRequestProperty(keys.get(i), values.get(i)); } } }