2015-01-15 62 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

已解决。我添加了调用线程读取响应停止方法的线程监视器。