diff --git a/src/com/b44t/messenger/DcContext.java b/src/com/b44t/messenger/DcContext.java index 383a84b1a..a83b1c4ec 100644 --- a/src/com/b44t/messenger/DcContext.java +++ b/src/com/b44t/messenger/DcContext.java @@ -31,6 +31,7 @@ public class DcContext { public final static int DC_EVENT_GET_STRING = 2091; public final static int DC_EVENT_GET_QUANTITIY_STRING = 2092; public final static int DC_EVENT_HTTP_GET = 2100; + public final static int DC_EVENT_HTTP_POST = 2110; public final static int DC_IMEX_EXPORT_SELF_KEYS = 1; public final static int DC_IMEX_IMPORT_SELF_KEYS = 2; diff --git a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java index a0f8e9872..6245165be 100644 --- a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java +++ b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java @@ -36,9 +36,12 @@ import org.thoughtcrime.securesms.util.Util; import java.io.BufferedInputStream; import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.File; 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; @@ -609,6 +612,52 @@ public class ApplicationDcContext extends DcContext { } return stringToData(httpContent); + case DC_EVENT_HTTP_POST: + String postContent = null; + try { + String urlStr = dataToString(data1); + String paramStr = ""; + if(urlStr.contains("?")) { + paramStr = urlStr.substring(urlStr.indexOf("?")+1); + urlStr = urlStr.substring(0, urlStr.indexOf("?")); + } + + URL url = new URL(urlStr); + url.getQuery(); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + try { + conn.setRequestMethod("POST"); + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setConnectTimeout(15 * 1000); + conn.setReadTimeout(15 * 1000); + + OutputStream os = conn.getOutputStream(); + BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(os, "UTF-8")); + writer.write(paramStr); + + writer.flush(); + writer.close(); + os.close(); + + if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { + BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(conn.getInputStream()))); + StringBuilder total = new StringBuilder(); + String line; + while ((line = br.readLine()) != null) { + total.append(line).append('\n'); + } + postContent = total.toString(); + } + } finally { + conn.disconnect(); + } + } catch (Exception e) { + e.printStackTrace(); + } + return stringToData(postContent); + case DC_EVENT_GET_STRING: String s; switch ((int) data1) {