Старайтесь держать соединение открытым, если запросы поступают на один и тот же сервер.Кроме того, старайтесь избегать перераспределений в буфере и читайте как можно больше за один раз.
const int APPROX_MAX_PAGE_SIZE = 300;
try
{
URL myURL = new URL("http://www.google.com");
URLConnection ucon = myURL.openConnection();
ucon.setRequestHeader("Connection", "keep-alive") // (1)
InputStream inputStream = ucon.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
ByteArrayBuffer byteArrayBuffer = new ByteArrayBuffer(APPROX_MAX_PAGE_SIZE); // (2)
int current = 0;
byte[] buf = new byte[APPROX_MAX_PAGE_SIZE];
int read;
do {
read = bufferedInputStream.read(buf, 0, buf.length); // (3)
if(read > 0) byteArrayBuffer.append(buf, 0, read);
} while (read >= 0);
tempString = new String(byteArrayBuffer.toByteArray());
}
catch (Exception e)
{
Log.i("Error",e.toString());
}
- Установите заголовок Keep-alive (не уверен, что вам это нужно, на J2SE этонастраиваемое свойство)
- Выделите то, что «обычно достаточно» в буфере, чтобы избежать перераспределения.
- Читайте более одного байта одновременно
Отказ от ответственности: Этобыл написан "в шторке" без доступа к компилятору Java.Может случиться так, что setRequestHeader доступен только для HttpURLConnection (приведение необходимо) или что некоторые параметры неверны, но вы можете редактировать, если это так.