Нужно ли вызывать HttpURLConnection.disconnect после того, как вы его используете?
Следующий код в основном работает как положено. Однако, чтобы быть параноиком, мне было интересно, чтобы избежать утечки ресурсов,
Do I need to callHttpURLConnection.disconnect
, after finish its usage?
Do I need to call InputStream.close
?
Do I need to call InputStreamReader.close
?
Do I need to have the following 2 line of code : httpUrlConnection.setDoInput(true)
and httpUrlConnection.setDoOutput(false)
, just after the construction of httpUrlConnection?
Причина, по которой я спрашиваю, состоит в том, что большинство примеров, которые я видел, не выполняют такую очистку.http://www.exampledepot.com/egs/java.net/post.html а такжеhttp://www.vogella.com/articles/AndroidNetworking/article.html, Я просто хочу убедиться, что эти примеры верны.
public static String getResponseBodyAsString(String request) {
BufferedReader bufferedReader = null;
try {
URL url = new URL(request);
HttpURLConnection httpUrlConnection = (HttpURLConnection)url.openConnection();
InputStream inputStream = httpUrlConnection.getInputStream();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
int charRead = 0;
char[] buffer = new char[1024];
StringBuffer stringBuffer = new StringBuffer();
while ((charRead = bufferedReader.read(buffer)) > 0) {
stringBuffer.append(buffer, 0, charRead);
}
return stringBuffer.toString();
} catch (MalformedURLException e) {
Log.e(TAG, "", e);
} catch (IOException e) {
Log.e(TAG, "", e);
} finally {
close(bufferedReader);
}
return null;
}
private static void close(Reader reader) {
if (reader != null) {
try {
reader.close();
} catch (IOException exp) {
Log.e(TAG, "", exp);
}
}
}