HttpURLConnection中如何设置网络超时

简介: Java中可以使用HttpURLConnection来请求WEB资源。  HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:  String szUrl = "http://www.
Java 中可以使用 HttpURLConnection 来请求 WEB 资源。  
HttpURLConnection 对象不能直接构造,需要通过 URL.openConnection() 来获得 HttpURLConnection 对象,示例代码如下:  
String szUrl = "http://www.ee2ee.com/"; 
URL url = new URL(szUrl); 
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection(); 
HttpURLConnection 是基于 HTTP 协议的,其底层通过 socket 通信实现。如果不设置超时( timeout ),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:  
System.setProperty("sun.net.client.defaultConnectTimeout", 超时毫秒数字符串 ); 
System.setProperty("sun.net.client.defaultReadTimeout", 超时毫秒数字符串 ); 
其中: sun.net.client.defaultConnectTimeout :连接主机的超时时间(单位:毫秒)  
sun.net.client.defaultReadTimeout :从主机读取数据的超时时间(单位:毫秒)  
例如:  
System.setProperty("sun.net.client.defaultConnectTimeout", "30000"); 
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); 
JDK 1.5 以前的版本,只能通过设置这两个系统属性来控制网络超时。在 1.5 中,还可以使用 HttpURLConnection 的父类 URLConnection 的以下两个方法:  
setConnectTimeout :设置连接主机超时(单位:毫秒)  
setReadTimeout :设置从主机读取数据超时(单位:毫秒)  
例如:  
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection(); 
urlCon.setConnectTimeout(30000); 
urlCon.setReadTimeout(30000); 
需要注意的是,笔者在 JDK1.4.2 环境下,发现在设置了 defaultReadTimeout 的情况下,如果发生网络超时, HttpURLConnection 会自动重新提交一次请求,出现一次请求调用,请求服务器两次的问题( Trouble
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。 http://www.iteye.com/topic/179241
目录
相关文章
|
4月前
|
缓存 数据安全/隐私保护 Kotlin
Kotlin 中的网络请求代理设置最佳实践
Kotlin 中的网络请求代理设置最佳实践
|
12天前
|
安全 Java API
深入探索Java网络编程中的HttpURLConnection:从基础到进阶
本文介绍了Java网络编程中HttpURLConnection的高级特性,包括灵活使用不同HTTP方法、处理重定向、管理Cookie、优化安全性以及处理大文件上传和下载。通过解答五个常见问题,帮助开发者提升网络编程的效率和安全性。
|
1月前
|
Ubuntu 网络安全 数据安全/隐私保护
阿里云国际版如何设置网络控制面板
阿里云国际版如何设置网络控制面板
|
1月前
|
Ubuntu Linux 应用服务中间件
阿里云国际短信业务网络超时排障指南
阿里云国际短信业务网络超时排障指南
|
2月前
|
网络协议 算法 网络性能优化
C语言 网络编程(十五)套接字选项设置
`setsockopt()`函数用于设置套接字选项,如重复使用地址(`SO_REUSEADDR`)、端口(`SO_REUSEPORT`)及超时时间(`SO_RCVTIMEO`)。其参数包括套接字描述符、协议级别、选项名称、选项值及其长度。成功返回0,失败返回-1并设置`errno`。示例展示了如何创建TCP服务器并设置相关选项。配套的`getsockopt()`函数用于获取这些选项的值。
|
3月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
3月前
|
缓存 负载均衡 应用服务中间件
Nginx 代理管理器强势登场!轻松设置反向代理,为你的网络安全与高效护航,快来探索!
【8月更文挑战第23天】Nginx 代理管理器(NPM)是一款强大的工具,用于简化反向代理的设置流程。反向代理能隐藏后端服务器的真实IP,提升安全性,实现负载均衡与缓存等功能。用户需先安装Nginx 代理管理器,然后通过其Web界面添加代理主机,指定代理名称、协议类型、服务器地址及端口等信息。对于HTTPS协议,还需上传SSL证书/密钥。完成设置后,可通过浏览器测试反向代理是否正常工作。Nginx 代理管理器还支持高级特性,如负载均衡、缓存及访问控制等。
99 1
|
3月前
|
网络协议 Linux 网络架构
在Linux中,如何设置网络路由?
在Linux中,如何设置网络路由?
|
3月前
|
网络协议 安全
【Azure 应用服务】Azure Function集成虚拟网络,设置被同在虚拟网络中的Storage Account触发,遇见Function无法触发的问题
【Azure 应用服务】Azure Function集成虚拟网络,设置被同在虚拟网络中的Storage Account触发,遇见Function无法触发的问题
|
3月前
|
存储 编解码 监控
云端加密代码库问题之企业设置网络隔离如何解决
云端加密代码库问题之企业设置网络隔离如何解决
下一篇
无影云桌面