I am trying to get response data of a Http request. My code looks like this :
public class Networking {
    // private variables
    private URL mUrl;
    private InputStream mInputStream;
    public void Networking() {}
    public InputStream setupConnection(String urlString) {
        // public variables
        int connectionTimeout = 10000; // milliseconds
        int readTimeout = 15000; // milliseconds
        try {
            mUrl = new URL(urlString);
            try {
                // initialize connection
                HttpURLConnection connection = (HttpURLConnection) mUrl.openConnection();
                // setup connection
                connection.setConnectTimeout(connectionTimeout);
                connection.setReadTimeout(readTimeout);
                connection.setRequestMethod("GET");
                connection.setDoInput(true);
                // start the query
                try {
                    connection.connect();
                    int response = connection.getResponseCode();
                    if (response == 200) {
                        // OK
                        mInputStream = connection.getInputStream();
                        return mInputStream;
                    } else if (response == 401) {
                        // Unauthorized
                        Log.e("Networking.setupConn...", "unauthorized HttpURL connection");
                    } else {
                        // no response code
                        Log.e("Networking.setupConn...", "could not discern response code");
                    }
                } catch (java.io.IOException e) {
                    Log.e("Networking.setupConn...", "error connecting");
                }
            } catch (java.io.IOException e) {
                Log.e("Networking.setupConn...", "unable to open HTTP Connection");
            }
        } catch (java.net.MalformedURLException e) {
            Log.e("Networking.setupConn..", "malformed url " + urlString);
        }
        // if could not get InputStream
        return null;
    }
    public String getStringFromInputStream() {
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder(5000);
        String line;
        try {
            br = new BufferedReader(new InputStreamReader(mInputStream), 512);
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
        } catch (java.io.IOException e) {
            Log.e("BufferReader(new ..)", e.toString());
            return null;
        } finally {
            if(br != null) {
                try {
                    br.close();
                }catch (java.io.IOException e) {
                    Log.e("br.close", e.toString());
                }
            }
        }
        return sb.toString();
    }
}
The problem is that the getStringFromInputStream function always returns a string that is 4063 bytes long. ALWAYS! No matter what the url.
I checked, and the (line = br.readLine()) part of the code always returns a string of fixed length of 4063.
I don't understand this. Please help.
 
     
     
    