2015-01-15 61 views
0

我有套接字輸入流讀取問題。 讀書之前,我設置超時的HttpClient套接字超時不工作,InputStream讀取塊

connectionManager.getParams().setSoTimeout(1000*10); 
connectionManager.getParams().setConnectionTimeout(1000*10); 
HttpClient client = new HttpClient(connectionManager); 

嘗試在讀取讀取響應流,而不是SocketTimeoutException我越來越塊()方法。

client.executeMethod(method); 
    InputStream stream = method.getResponseBodyAsStream(); 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    try { 
     int read; 
     byte[] bytes = new byte[1024]; 
     while ((read = stream.read(bytes)) != -1) { 
      baos.write(bytes, 0, read); 
     } 
    } catch (Throwable e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      baos.close(); 
      stream.close(); 
     } catch (Throwable e) { 
      e.printStackTrace(); 
     } 
    } 

如何讀取沒有塊的輸入流以及爲什麼soTimeout不工作?

非常感謝。

回答

1

已解決。我添加了調用線程讀取響應停止方法的線程監視器。