InputStream.available()在没有可用字节的情况下,如果不更改读取线程以进行轮询使用并睡眠一小段时间,似乎无法完成此 *** 作,同时检查某个标志以查看线程是否应结束。
解决方案是仅使用Apache HTTP组件。通过将GET请求的代码封装在一个类中,可以很容易地将其集成到现有代码中。
public class HttpGetConnection implements AutoCloseable { public HttpGetConnection(String url) throws IOException { client = new DefaultHttpClient(); get = new HttpGet(url); response = client.execute(get); entity = response.getEntity(); } public InputStream getContent() throws IOException { content = entity.getContent(); return content; } @Override public void close() throws Exception { get.abort(); try { content.close(); } catch (IOException e) { } } private HttpClient client; private HttpGet get; private HttpResponse response; private HttpEntity entity; private InputStream content;}
原始帖子中的循环可以保持不变,并且读取线程将在调用后不久终止
HttpGetConnection.close()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)