This snippet reads all of the InputStream into a String. Useful for any kind of InputStream, including the content of aHttpResponse after a HttpClient request. See also this answer on SO. Essentially 
StringBuilder is a lot faster, and can be converted to a normal String with the .toString() method.
For reading the content of a HttpResponse use 
inputStreamToString(response.getEntity().getContent()).
// Fast Implementation
private StringBuilder inputStreamToString(InputStream is) {
    String line = "";
    StringBuilder total = new StringBuilder();
    // Wrap a BufferedReader around the InputStream
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    // Read response until the end
    while ((line = rd.readLine()) != null) { 
        total.append(line); 
    }
    // Return full string
    return total;
}
// Slow Implementation
private String inputStreamToString(InputStream is) {
    String s = "";
    String line = "";
    // Wrap a BufferedReader around the InputStream
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    // Read response until the end
    while ((line = rd.readLine()) != null) { s += line; }
    // Return full string
    return s;
}
No comments:
Post a Comment