在响应完成之前关闭HttpURLConnection

在响应完成之前关闭HttpURLConnection,第1张

在响应完成之前关闭HttpURLConnection

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()



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存