Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - URLConnection setReadTimeout(int timeout)



描述

Java URLConnection setReadTimeout(int timeout) 方法将读取超时设置为指定的超时时间(以毫秒为单位)。非零值指定在建立与资源的连接时从输入流读取时的超时时间。如果超时在有数据可供读取之前到期,则会引发 java.net.SocketTimeoutException。超时值为零被解释为无限超时。

声明

以下是 java.net.URLConnection.setReadTimeout(int timeout) 方法的声明

public void setReadTimeout(int timeout)

参数

timeout − 一个 int,指定要使用的超时值(以毫秒为单位)

返回值

一个 int,指示读取超时值(以毫秒为单位)

异常

IllegalArgumentException − 如果 timeout 参数为负。

示例 1

以下示例演示了如何为具有 https 协议的有效 url 使用 Java URLConnection setReadTimeout() 方法。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时时间并打印出来。然后使用 setReadTimeout() 方法,我们将读取超时的值增加 1 小时并再次打印出来。

package com.tutorialspoint;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.time.Instant;
import java.util.Date;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.com");
         URLConnection urlConnection = url.openConnection();
         int headerValue = urlConnection.getReadTimeout();
         System.out.println("Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
         headerValue += 3600000;
         urlConnection.setReadTimeout(headerValue);
         System.out.println("Updated Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果:

输出

Read Timeout: Thu Jan 01 05:30:00 IST 1970
Updated Read Timeout: Thu Jan 01 06:30:00 IST 1970

示例 2

以下示例演示了如何为具有 http 协议的有效 url 使用 Java URLConnection setReadTimeout() 方法。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时时间并打印出来。然后使用 setReadTimeout() 方法,我们将读取超时的值增加 1 小时并再次打印出来。

package com.tutorialspoint;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.time.Instant;
import java.util.Date;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.com");
         URLConnection urlConnection = url.openConnection();
         int headerValue = urlConnection.getReadTimeout();
         System.out.println("Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
         headerValue += 3600000;
         urlConnection.setReadTimeout(headerValue);
         System.out.println("Updated Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果:

输出

Read Timeout: Thu Jan 01 05:30:00 IST 1970
Updated Read Timeout: Thu Jan 01 06:30:00 IST 1970

示例 3

以下示例演示了如何为具有 http 协议的有效 url 使用 Java URLConnection setReadTimeout() 方法。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时时间并打印出来。然后使用 setReadTimeout() 方法,我们将读取超时的值增加 1 小时并再次打印出来。

package com.tutorialspoint;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.time.Instant;
import java.util.Date;

public class UrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("http://www.google.com");
         URLConnection urlConnection = url.openConnection();
         int headerValue = urlConnection.getReadTimeout();
         System.out.println("Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
         headerValue += 3600000;
         urlConnection.setReadTimeout(headerValue);
         System.out.println("Updated Read Timeout: " + Date.from(Instant.ofEpochMilli(headerValue)));
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行上述程序,这将产生以下结果:

输出

Read Timeout: Thu Jan 01 05:30:00 IST 1970
Updated Read Timeout: Thu Jan 01 06:30:00 IST 1970
java_urlconnection.htm
广告