首页 / 知识
关于 url:如何根据 Java 中的 URLConnection 对 BufferedReader 设置超时?
2023-04-17 04:44:00

How can I set a timeout against a BufferedReader based upon a URLConnection in Java?我想读取 URL 的内容,但不想在 URL 无响应时"挂起"。我使用 URL 创建了一个 BufferedReader...
...然后开始循环读取内容...
...但如果读取挂起,则应用程序挂起。 有没有一种方法,无需将代码打磨到套接字级别,在必要时"超时"读取? 我认为 URLConnection.setReadTimeout 是您正在寻找的。 如果你有 java 1.4: 我认为连接超时 ( ---不杀线程---可能会导致未知问题,打开描述符等 生成一个 java.util.TimerTask,您将在其中检查是否已完成该过程,否则,关闭 BufferedReader 和 URLConnection 的 OutputStream 插入一个布尔标志
这可能会导致 ioexception,所以你必须抓住它。例外本身并不是一件坏事。 从 Java 1.5 开始,可以通过 URLConnection 类上的 'setReadTimeout(int timeout)' 方法在底层套接字上设置读取超时(以毫秒为单位)。 请注意,还有 'setConnectTimeout(int timeout)' 将对与远程服务器的初始连接执行相同的操作,因此设置它也很重要。 对于 Java 1.4,您可以使用来自 Apache 的 SimpleHttpConnectionManager.getConnectionWithTimeout(hostConf,CONNECTION_TIMEOUT) 我最近一直在 JVM 1.4 环境中处理这个问题。常用的答案是使用系统属性 sun.net.client.defaultReadTimeout(读取超时)和/或 sun.net.client.defaultConnectTimeout。这些记录在 Networking Properties 中,可以通过 Java 命令行上的 -D 参数或通过 System.setProperty 方法调用进行设置。 假设这些是由实现缓存的,因此您不能将它们从一种事物更改为另一种事物,因此它们被使用一次,值将被保留。 它们也不适用于 SSL 连接 ala HttpsURLConnection。还有其他方法可以使用自定义 SSLSocketFactory. 同样,这一切都适用于 JVM 1.4.x。在 1.5 及更高版本中,您可以在 API 中使用更多方法(如上述其他响应者所述)。 |
最新内容
相关内容
linux服务器超时命令?
linux服务器超时命令?,系统,信息,服务,情况,网站,第一,工作,软件,体系,平均,linux服务器上,其他机器通过curl+IP能够访问,但curl+域名访问超时linux读取硬盘命令?
linux读取硬盘命令?,系统,信息,情况,百分比,命令,单位,软件,管理,地址,数据,linux下查看硬盘大小的命令是什么?使用命令“df -lh”,可以更详细linux命令超时设置?
linux命令超时设置?,时间,系统,软件,电脑,服务,资料,中心,网络,管理,状态,linux定时器超时次数过多之后,再也收不到信号1、当时钟脉冲到来时,将linux下读取文件命令?
linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,linux文件系统常用命令1、其中一些常用的命令包括ls、cd、pwd和mklinux设置命令行长度?
linux设置命令行长度?,系统,工作,信息,地址,命令,工具,异常,管理,目录,文件,linux日志显示长度,设置命令tail -n 1000:显示最后1000行 tail -nlinux设置代替命令?
linux设置代替命令?,系统,地址,网络,工作,软件,工具,服务,信息,命令,别名,linux系统怎样设置命令别名可将设置别名的命令写进启动文件内,这样,每linux命令设置时区?
linux命令设置时区?,时间,系统,国家,大陆,命令,时区,时钟,日期,指令,时分,linux系统修改系统时间与时区的方法有哪些inux修改时间命令是date-slinux显卡设置命令?
linux显卡设置命令?,管理,官方网站,官网,系统,信息,电脑,地址,地方,平台,数字,linux系统设置里改默认显卡修改BIOS设置:在启动电脑时按下相应的linux设置命令限制?
linux设置命令限制?,数字,情况,信息,管理,系统,最新,在线,设备,第一,发行,Linux每个命令行最多可以输入多少字符,如何设置?多少字符没有特定限linux设置日志命令行?
linux设置日志命令行?,异常,系统,实时,日志,管理,信息,对比,项目,名称,情况,Linux运维知识:从命令行如何查看Linux日志如下图所示,先cd到我们需linux命令设置日期?
linux命令设置日期?,时间,系统,命令,服务,大陆,信息,国家,时钟,终端,日期,详解Linux系统中的日期设定与date命令的用法1、date 命令用于 显示linux命令行设置网卡?
linux命令行设置网卡?,系统,地址,信息,网络,工具,电脑,工作,名称,设备,网卡,linux配置网卡后,单独关掉网卡和重启网卡的命令是什么?首先用CRT