diff --git a/api/src/com/todoroo/andlib/service/HttpRestClient.java b/api/src/com/todoroo/andlib/service/HttpRestClient.java index df55d8e76..e2c514279 100644 --- a/api/src/com/todoroo/andlib/service/HttpRestClient.java +++ b/api/src/com/todoroo/andlib/service/HttpRestClient.java @@ -5,10 +5,8 @@ */ package com.todoroo.andlib.service; -import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.lang.ref.WeakReference; import java.util.zip.GZIPInputStream; @@ -41,11 +39,10 @@ import org.apache.http.protocol.HttpContext; import android.util.Log; +import com.todoroo.andlib.utility.AndroidUtilities; + /** * RestClient allows Android to consume web requests. - *

- * Portions by Praeda: - * http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-client-at-android/ * * @author Tim Su * @@ -91,34 +88,6 @@ public class HttpRestClient implements RestClient { HttpConnectionParams.setSoTimeout(params, timeout); } - private static String convertStreamToString(InputStream is) { - /* - * To convert the InputStream to String we use the - * BufferedReader.readLine() method. We iterate until the BufferedReader - * return null which means there's no more data to read. Each line will - * appended to a StringBuilder and returned as String. - */ - BufferedReader reader = new BufferedReader(new InputStreamReader(is), 16384); - StringBuilder sb = new StringBuilder(); - - String line = null; - try { - while ((line = reader.readLine()) != null) { - sb.append(line + "\n"); //$NON-NLS-1$ - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - is.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - return sb.toString(); - } - private HttpParams params; private ThreadSafeClientConnManager cm; @@ -200,7 +169,7 @@ public class HttpRestClient implements RestClient { if (entity != null) { InputStream contentStream = entity.getContent(); try { - body = convertStreamToString(contentStream); + body = AndroidUtilities.readInputStream(contentStream); } finally { contentStream.close(); } diff --git a/api/src/com/todoroo/andlib/utility/AndroidUtilities.java b/api/src/com/todoroo/andlib/utility/AndroidUtilities.java index 63b6910a4..94c2d727e 100644 --- a/api/src/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/api/src/com/todoroo/andlib/utility/AndroidUtilities.java @@ -707,6 +707,29 @@ public class AndroidUtilities { } } + public static String readInputStream(InputStream input) { + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader(input), 1 << 14); + String line; + StringBuilder buffer = new StringBuilder(); + while ((line = in.readLine()) != null) { + buffer.append(line).append('\n'); + } + return buffer.toString(); + } catch (IOException e) { + return ""; //$NON-NLS-1$ + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + // Ignore + } + } + } + } + /** * Performs an md5 hash on the input string * @param input