2013-04-11 155 views
0

這個連接爲什麼不關閉。當它進行初始連接時,它會隨機發送1或2個後續請求,或者它可能會發送空字符串,例如{}。爲什麼HttpUrlConnection不關閉?

而服務器沒有給出任何迴應。

 private void playOnLoqooTv (String finalUrl) { 
     HttpURLConnection con = null; 
     try { 

      URL url = new URL(finalUrl); 

      // Log.d("TAG", url); 
      System.out.println(url); 
      // Log.d("yo"); 
      con = (HttpURLConnection) url.openConnection(); 
      readStream(con.getInputStream()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     }finally { 
      if (con != null) { 
       con.disconnect(); 
      } 
     } 
    } 

    private void readStream(InputStream in) { 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new InputStreamReader(in)); 
      String line = ""; 
      while ((line = reader.readLine()) != null) { 
       System.out.println(line); 
      } 
      reader.close(); 
     }catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

回答

0

連接停留在保持活動,如果你正在檢查連接是否在系統的某個地方活着它可能會出現連接被打開,因爲插座撐單獨開設超過連接長一點。

+0

所有這些都是可選的 – 2013-04-11 12:25:54

+0

它證實它正在連接,但我所做的只是觸發腳本,但連接仍然存在。基本上ping服務器,直到我離開活動 – sirvon 2013-04-11 12:35:38

+1

但它正在完成閱讀和調用關閉?如果是,那麼一個選項是,如果您正在檢查連接是否存活,那麼該連接將保持在KeepAlive上。在系統中可能會顯示連接已打開,因爲套接字保持打開時間比單獨連接時間長一點。 – Mateusz 2013-04-11 12:54:35