Vários pedidos de um httpurlconnection
-
20-09-2019 - |
Pergunta
Como posso fazer várias solicitações em um httpurlconnection com 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
Obrigado.
Solução
Do javadoc:
Cada instância de httpurlConnection é usada para fazer uma única solicitação.
O objeto aparentemente não deve ser reutilizado.
Além de um pouco de debate e ineficiência, não há um grande problema em abrir um httpurlconnection para cada solicitação que você deseja fazer. Se você deseja uma rede eficiente de IO em uma escala maior, é melhor usar uma biblioteca especializada como Apache httpClient.
Outras dicas
Além da resposta correta, talvez o que você realmente deseja seja a reutilização da conexão TCP subjacente, também conhecida como "conexões persistentes", que são realmente apoiadas pela HttpurlConnection da JDK. Portanto, você não precisa usar outras LIBs HTTP por esse motivo; Embora existam outro motivo legítimo, possivelmente desempenho (mas não necessariamente, depende do caso de uso, biblioteca).