2013-07-02 2 views
0

Я использую HttpUrlConnect для публикации данных в webservice. Эта публикация данных будет происходить всякий раз, когда есть какие-либо регистрации событий называется. (Так что это в реальном времени)Должен ли я использовать Same HttpUrlconnection или определять каждый раз новый?

У меня есть вопрос относительно того, следует ли использовать один и тот же HttpURLConnection, как показано ниже

private HttpURLConnection getConnection() throws Exception { 
     URL url = new URL("http://localhost:8080/RestTest/ajax/user_info"); 
     HttpURLConnection conn = null; 
     conn = (HttpURLConnection) url.openConnection(); 
     return conn; 
    } 

    public void execute() throws Exception { 
     OutputStream os = null; 
     try { 

      HttpURLConnection conn = null; 


      conn = getConnection(); 

      conn.setDoOutput(true); 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Content-Type", "application/json"); 

      String input = "{\\\"qty\\\":100,\\\"name\\\":\\\"sdsfds ddd\\\"}"; 

      os = conn.getOutputStream(); 
      os.write(input.getBytes()); 
      os.flush(); 
      conn.getInputStream(); 


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

     finally { 
      if (os != null) { 
       os.close(); 
      } 

     } 

    } 

Или я должен определить соединение everythime, как показано ниже ??

public void execute() throws Exception { 
     OutputStream os = null; 
     HttpURLConnection conn = null; 
     try { 
      URL url = new URL("http://localhost:8080/RestTest/ajax/user_info"); 

      conn = (HttpURLConnection) url.openConnection(); 
      conn.setDoOutput(true); 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Content-Type", "application/json"); 
      String input = "{\\\"qty\\\":100,\\\"name\\\":\\\"sdsfds ddd\\\"}"; 
      os = conn.getOutputStream(); 
      os.write(input.getBytes()); 
      os.flush(); 
      conn.getInputStream(); 

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

     finally { 
      conn.disconnect(); 
      if (os != null) { 
       os.close(); 
      } 

     } 

    } 

Скажите, пожалуйста, что подходит в этом контексте? Javadoc

+0

Вы * не можете * использовать один и тот же каждый каждый раз. Вы получаете новый каждый раз, когда вы вызываете 'URL.openConnection()'. Оба фрагмента кода делают то же самое. Не настоящий вопрос. – EJP

ответ

4

HttpURLConnection «S говорит:

Каждый экземпляр HttpURLConnection используется, чтобы сделать один запрос но основное сетевое соединение с сервером HTTP может быть прозрачно совместно с другими экземплярами.

Таким образом, хотя в фоновом режиме соединение может быть одинаковым, вы должны использовать новый запрос для каждого запроса.

Смежные вопросы