Я использую apache httpclient 4.0 для подключения к видеопотоку (motion jpeg) через http.Вот мой код:
DefaultHttpClient client;
HttpParams params = new BasicHttpParams();
List<String> authpref = new ArrayList<String>();
authpref.add(AuthPolicy.DIGEST);
authpref.add(AuthPolicy.BASIC);
params.setParameter("http.auth.proxy-scheme-pref", authpref);
params.setParameter("http.protocol.handle-authentication", Boolean.TRUE);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(
new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ClientConnectionManager connectionManager =
new ThreadSafeClientConnManager(params, schemeRegistry);
client = new DefaultHttpClient(connectionManager, params);
client.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials(username, password));
HttpResponse videoResponse = client.execute(new HttpGet(url));
Проблема в том, что строка client.execute (), по-видимому, создает сотни соединений с видеопотоком.Я могу убедиться в этом, войдя на сервер и выполнив netstat: огромное количество подключений к порту 80 и все они застряли в состоянии TIME_WAIT.
Я что-то здесь не так делаю?Что происходит?
Спасибо за помощь.