java - 如何根据 Java 中的 URLConnection 为 BufferedReader 设置超时?

标签 java url sockets

我想阅读 URL 的内容,但不想在 URL 无响应时“挂起”。我使用 URL 创建了一个 BufferedReader...

URL theURL = new URL(url);
URLConnection urlConn = theURL.openConnection();
urlConn.setDoOutput(true);
BufferedReader urlReader = new BufferedReader(newInputStreamReader(urlConn.getInputStream()));

...然后开始循环读取内容...

do
    {
    buf = urlReader.readLine();
    if (buf != null)
        {
        resultBuffer.append(buf);
        resultBuffer.append("\n");
        }
    }
while (buf != null);

...但如果读取挂起,则应用程序挂起。

有没有办法在不将代码细化到套接字级别的情况下,在必要时“超时”读取?

最佳答案

我认为 URLConnection.setReadTimeout 就是您要找的。

关于java - 如何根据 Java 中的 URLConnection 为 BufferedReader 设置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/93357/

相关文章:

java - GridBagLayout 中的 JTextPane 的行为不符合预期

jquery 如果 url 第一个路径名与 href 匹配,则

c - 套接字 sendto() 在上次成功调用后返回 EINVAL

c++ - 从 C++ 代码到 Common Lisp 代码的 RPC

c - C 中的 SSL 套接字无法连接到某些站点

java - 使用 Jackson 流式传输内部 JSONArray 记录,避免内存收集

java - 使用 Flying Saucer 在内存中将图像渲染为 PDF

java - 在java中从SFTP服务器检索文件列表

ruby-on-rails - 直接访问页面时忽略上一个 URL 的 URI(request.referer).path

php - 以编程方式从 MySQL 从 URL 获取图像