1 つの HttpURLConnection からの複数のリクエスト
-
20-09-2019 - |
質問
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
ありがとう。
解決
Javadoc から:
各 HttpURLConnection インスタンスは、単一のリクエストを行うために使用されます。
どうやらこのオブジェクトは再利用することを目的としていないようです。
多少のメモリ スラッシングと非効率性を除けば、実行するリクエストごとに 1 つの HttpURLConnection を開くことに大きな問題はありません。ただし、大規模なネットワーク IO を効率的に実行したい場合は、次のような特殊なライブラリを使用することをお勧めします。 Apache HTTPクライアント.
他のヒント
正しい答えを越えて、あなたが実際にしたいかもしれないものを実際にJDKのHttpURLConnectionのによってサポートされている別名「持続的な接続」、根本的なTCP接続の再利用です。だから、その理由のために他のHTTPのlibsを使用する必要はありません。その他の正当な理由、おそらくパフォーマンスもあるが(必ずしも必要ではないが、ユースケース、ライブラリに依存します)。
所属していません StackOverflow