апачское свободное городское население http клиентская эффективность

Я использую апачское свободное городское население http клиент для отправки данных по почте каждую секунду, есть ли способ сделать следующий код более эффективным? Я знаю, что http является не сохраняющим состояние, но является там чем-либо, что я могу сделать для улучшения, так как базовый URL всегда является тем же в этом случае (только изменение значения параметра.

private void sendData(String s){ 
      try
         {
              HttpClient client = getHttpClient();


              HttpPost method = new HttpPost("http://192.168.1.100:8080/myapp");
              System.err.println("send to server "+s);
              List formparams = new ArrayList();
              formparams.add(new BasicNameValuePair("packet", s));

              UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
              method.setEntity(entity);

              HttpResponse resp=client.execute(method);
              String res = EntityUtils.toString(resp.getEntity());
              System.out.println(res);

         }
         catch (Exception e)
         {
              e.printStackTrace();

         }
    }
 private HttpClient getHttpClient() {
  if(httpClient==null){
   httpClient = new DefaultHttpClient();
  }
  return httpClient;
 }
6
задан skaffman 18 May 2012 в 18:05
поделиться

2 ответа

Используйте диспетчер многопоточных соединений,

http://hc.apache.org/httpclient-3.x/threading.html#MultiThreadedHttpConnectionManager

Это улучшит сохранение -alive и повышайте вероятность того, что ваше соединение будет готово каждую секунду, поэтому вам не нужно повторно устанавливать TCP-соединение.

2
ответ дан 17 December 2019 в 18:10
поделиться

Если вам нужно отправлять запрос и получать ответ каждую секунду, то да, это почти все, что вы можете сделать. Однако, да, это будет использовать достаточное количество ресурсов.

Еще один подход, который можно рассмотреть, - это подход Comet, при котором HTTP-соединение остается открытым с сервером, и информация постепенно отправляется по этому соединению. Вот интересная статья с примерами.

1
ответ дан 17 December 2019 в 18:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: