HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
执行上面这句会堵塞,该怎么强制取消掉?
我用connection.disconnect(); 和 connection == null 都无法将其终止和强制异常.
大家都是怎么解决网络连接取消的问题?
执行上面这句会堵塞,该怎么强制取消掉?
我用connection.disconnect(); 和 connection == null 都无法将其终止和强制异常.
大家都是怎么解决网络连接取消的问题?
public void setReadTimeout(int timeout)将读超时设置为指定的超时,以毫秒为单位。用一个非零值指定在建立到资源的连接后从 Input 流读入时的超时时间。如果在数据可读取之前超时期满,则会引发一个 java.net.SocketTimeoutException。超时时间为零表示无穷大超时。
此方法的一些非标准实现会忽略指定的超时。要查看读入超时设置,请调用 getReadTimeout()。
参数:
timeout - 一个指定要使用的超时值的 int,以毫秒为单位
抛出:
IllegalArgumentException - 如果超时参数为负
从以下版本开始:
1.5
另请参见:
getReadTimeout(), InputStream.read()
你说的对,应该getInputStream 或者 getOutputStream 堵塞.就是在这个堵塞期间,我想取消了这次联网请求.2楼说的setReadTimeout在getInputStream 或者 getOutputStream 以后也是无效的.还有别的解决办法吗?
这样是不是有点太粗暴了? java不推荐直接kill thread呀.