HttpContextはスレッド間で共有しない

HttpClient 4では

HttpResponse response = httpClient.execute(httpget, context);

みたいな感じでHttpContextを渡すかと思うけど、4.2からHttpContextはスレッド間では共有しないようにするのが正しいらしい。なので、contextをどっかで作っておいて、マルチスレッドで上記のコードを呼び出すと共有されてしまうので、

HttpResponse response = httpClient.execute(httpget, new BasicHttpContext(context));

とする必要があるようだ。S2RobotではHcHttpClientで思いっきり共有しているので、修正が必要そうだ…。

カテゴリー: Java パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.