16

Javaを使用して1つのHttpURLConnectionで複数のリクエストを実行するにはどうすればよいですか?

 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

ありがとう。

4

2 に答える 2

18

Javadocから:

各HttpURLConnectionインスタンスは、単一のリクエストを行うために使用されます。

オブジェクトは明らかに再利用されることを意図していません。

少しのメモリスラッシングと非効率性を除けば、要求するたびに1つのHttpURLConnectionを開くことに大きな問題はありません。ただし、大規模で効率的なネットワークIOが必要な場合は、ApacheHttpClientなどの専用ライブラリを使用することをお勧めします。

于 2010-03-16T19:51:30.113 に答える
3

正解を超えて、実際に必要なのは、基盤となるTCP接続、別名「永続的接続」の再利用です。これは、JDKのHttpURLConnectionによって実際にサポートされています。したがって、その理由で他のhttpライブラリを使用する必要はありません。他にも正当な理由がありますが、パフォーマンスの可能性があります(ただし、必ずしもそうとは限りませんが、ユースケースやライブラリによって異なります)。

于 2010-10-20T16:04:02.840 に答える