Подтвердить что ты не робот

Несколько запросов от одного 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

Спасибо.

4b9b3361

Ответ 1

Из Javadoc:

Каждый экземпляр HttpURLConnection используется для создания одного запроса.

Объект, по-видимому, не предназначен для повторного использования.

Помимо небольшого избиения памяти и неэффективности, нет большой проблемы с открытием одного HttpURLConnection для каждого запроса, который вы хотите сделать. Если вам нужен эффективный сетевой IO в более широком масштабе, вам лучше использовать специализированную библиотеку, например Apache HttpClient.

Ответ 2

Помимо правильного ответа, возможно, что вы действительно хотите использовать повторное использование базового TCP-соединения, а также "постоянные соединения", которые действительно поддерживаются JDK HttpURLConnection. Поэтому вам не нужно использовать другие http файлы по этой причине; хотя есть и другая законная причина, возможно, производительность (но не обязательно, зависит от варианта использования, библиотеки).