From 9da1a910b32d5f23afe43af694c84446c2f20843 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Sun, 8 Apr 2018 20:12:51 +0200 Subject: [PATCH] Add existingconnection to opoc:networkutils:performCall --- .../net/gsantner/opoc/util/NetworkUtils.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/net/gsantner/opoc/util/NetworkUtils.java b/app/src/main/java/net/gsantner/opoc/util/NetworkUtils.java index ebd7c31d..5212e5b7 100644 --- a/app/src/main/java/net/gsantner/opoc/util/NetworkUtils.java +++ b/app/src/main/java/net/gsantner/opoc/util/NetworkUtils.java @@ -64,7 +64,9 @@ public class NetworkUtils { connection = (HttpURLConnection) url.openConnection(); } connection.connect(); - input = connection.getInputStream(); + input = connection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST + ? connection.getInputStream() : connection.getErrorStream(); + if (!outFile.getParentFile().isDirectory()) if (!outFile.getParentFile().mkdirs()) @@ -145,20 +147,28 @@ public class NetworkUtils { } private static String performCall(final URL url, final String method, final String data) { + return performCall(url, method, data, null); + } + + private static String performCall(final URL url, final String method, final String data, final HttpURLConnection existingConnection) { try { - final HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestMethod(method); - conn.setDoInput(true); + final HttpURLConnection connection = existingConnection != null + ? existingConnection : (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(method); + connection.setDoInput(true); if (data != null && !data.isEmpty()) { - conn.setDoOutput(true); - final OutputStream output = conn.getOutputStream(); + connection.setDoOutput(true); + final OutputStream output = connection.getOutputStream(); output.write(data.getBytes(Charset.forName(UTF8))); output.flush(); output.close(); } - return FileUtils.readCloseTextStream(conn.getInputStream()); + InputStream input = connection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST + ? connection.getInputStream() : connection.getErrorStream(); + + return FileUtils.readCloseTextStream(connection.getInputStream()); } catch (Exception e) { e.printStackTrace(); }