DefaultHttpClient 取消与服务器的连接
DefaultHttpClient cancel connection to server
我有一个 Apache 提供的 DefaultHttpClient,我创建并执行不同的请求。
问题是与服务器的连接可能建立了很长时间,我的程序的用户可能想取消这个过程。
是否有任何有效的方法来中止按需建立的连接?
(我不能用request.abort()因为它是在httpClient.execute(request)之后执行的,这好像是这里的瓶颈。也没有办法我使用 setConnectionTimeout 因为我不知道用户什么时候会取消请求)
我已经尝试将请求执行包装在单独的线程中,并在用户取消事件时中断它,但我相信我可以找到更好的解决方案。
我也想到了使用 HttpAsyncClient。
据我所知,如果不将请求包装到其他线程中,就无法取消该请求。
我改为使用 HttpAsyncClient,它为您提供 Future
对象,它具有 cancel
方法。
我有一个 Apache 提供的 DefaultHttpClient,我创建并执行不同的请求。
问题是与服务器的连接可能建立了很长时间,我的程序的用户可能想取消这个过程。
是否有任何有效的方法来中止按需建立的连接?
(我不能用request.abort()因为它是在httpClient.execute(request)之后执行的,这好像是这里的瓶颈。也没有办法我使用 setConnectionTimeout 因为我不知道用户什么时候会取消请求)
我已经尝试将请求执行包装在单独的线程中,并在用户取消事件时中断它,但我相信我可以找到更好的解决方案。
我也想到了使用 HttpAsyncClient。
据我所知,如果不将请求包装到其他线程中,就无法取消该请求。
我改为使用 HttpAsyncClient,它为您提供 Future
对象,它具有 cancel
方法。