DefaultHttpClient取消与服务器的连接

时间:2016-04-28 08:16:56

标签: java connection apache-httpclient-4.x

我有Apache提供的DefaultHttpClient,我创建并执行不同的请求。

问题是与服务器的连接可能会建立很长时间,我的程序用户可能想要取消此过程。

是否有任何有效的方法可以根据需要中止连接?

(我不能使用request.abort()因为它在httpClient.execute(request)之后执行,这似乎是这里的瓶颈。我也没办法使用setConnectionTimeout因为我没有当用户取消请求时的想法)

我已经尝试在单独的线程中包装请求执行,并在用户取消事件中中断它,但我相信我可以找到更好的解决方案。

我也想到使用HttpAsyncClient。

1 个答案:

答案 0 :(得分:0)

据我所知,如果没有将请求包装到其他线程中,就无法取消请求。 我使用了HttpAsyncClient,它为您提供了Future对象,它具有cancel方法。