在android中取消Http连接

sat*_*sat 16 java android httpclient

我正在使用org.apache.http,我有这个代码:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);

HttpResponse resp = client.execute(get);
HttpEntity entity = resp.getEntity();

InputStream input = entity.getContent();

...
//Read the bytes from input stream
Run Code Online (Sandbox Code Playgroud)

这是我用来通过Http下载文件的代码,我想取消连接(可能是用户选择的)什么是关闭连接的优雅方式.我找到了两种方法,两种都取消了下载.

  1. 关闭inputsteram,input.close(); 这会导致IOException.
  2. 中止HttpGet对象,get.abort()会导致SocketException.

我尝试捕获,所以没有错误,但没有抛出异常,有没有办法取消或中止连接?

什么是正确的方法呢?

Gau*_*ale 2

用这个

client.getConnectionManager().closeExpiredConnections();
client.getConnectionManager().shutdown();
Run Code Online (Sandbox Code Playgroud)

现在您可以决定在代码中的何处编写这两行。它将使用您创建的 DefaultHttpClient 对象关闭连接。

让我知道这是否对您有帮助。