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.

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top