Несколько запросов от одного HttpURLConnection
Как я могу выполнить несколько запросов в одном HttpURLConnection с Java?
URL url = new URL("http://my.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
HttpURLConnection.setFollowRedirects( true );
connection.setDoOutput( true );
connection.setRequestMethod("GET");
PrintStream ps = new PrintStream( connection.getOutputStream() );
ps.print(params);
ps.close();
connection.connect();
//TODO: do next request with other url, but in same connection
Спасибо.
Ответы
Ответ 1
Из Javadoc:
Каждый экземпляр HttpURLConnection используется для создания одного запроса.
Объект, по-видимому, не предназначен для повторного использования.
Помимо небольшого избиения памяти и неэффективности, нет большой проблемы с открытием одного HttpURLConnection для каждого запроса, который вы хотите сделать. Если вам нужен эффективный сетевой IO в более широком масштабе, вам лучше использовать специализированную библиотеку, например Apache HttpClient.
Ответ 2
Помимо правильного ответа, возможно, что вы действительно хотите использовать повторное использование базового TCP-соединения, а также "постоянные соединения", которые действительно поддерживаются JDK HttpURLConnection. Поэтому вам не нужно использовать другие http файлы по этой причине; хотя есть и другая законная причина, возможно, производительность (но не обязательно, зависит от варианта использования, библиотеки).