说明
Java URLConnection setReadTimeout(int timeout) 方法将读取超时设置为指定的超时(以毫秒为单位)。非零值指定在与资源建立连接时从输入流读取的超时。如果在有数据可供读取之前超时到期,则会引发 java.net.SocketTimeoutException。超时为零被解释为无限超时。
声明
以下是 java.net.URLConnection.setReadTimeout(int timeout) 方法的声明
public void setReadTimeout(int timeout)
参数
timeout - 一个 int,指定要使用的超时值(以毫秒为单位)
返回值
一个 int,表示读取超时值(以毫秒为单位)
Exception
IllegalArgumentException - 如果超时参数为负数。
示例 1
以下示例显示了使用 Java URLConnection setReadTimeout() 方法获取 https 协议的有效 url。在此示例中,我们将创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时并打印它。然后使用 setReadTimeout() 方法,我们将读取超时值增加 1 小时为 true,并再次打印相同的值 -
package com.yxjc123;
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://www.yxjc123.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
以下示例显示使用 Java URLConnection setReadTimeout() 方法获取具有 http 协议的有效 url。在此示例中,我们将创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时并打印它。然后使用 setReadTimeout() 方法,我们将读取超时值增加 1 小时并再次打印相同的值 -
package com.yxjc123;
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.yxjc123.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
以下示例显示使用 Java URLConnection setReadTimeout() 方法获取具有 http 协议的有效 url。在此示例中,我们将创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 URLConnection 实例。使用 getReadTimeout(),我们获取 URLConnection 实例的读取超时并打印它。然后使用 setReadTimeout() 方法,我们将读取超时值增加 1 小时并再次打印相同的值 -
package com.yxjc123;
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.baidu.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