Java中可以使用HttpURLConnection来请求WEB资源。
HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:
String urlStr= "www.sina.com.cn";
URL url = new URL(urlStr);
HttpURLConnection conn = (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);
分享到:
相关推荐
本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...
下面将详细讨论`HttpURLConnection`的超时设置、IO异常处理以及如何应对这些问题。 1. **超时设置**: - `setConnectTimeout(int timeout)`:这个方法用于设置建立网络连接的超时时间,单位为毫秒。如果在指定时间...
3. 设置请求属性:如超时时间、请求头等。 4. 发送请求:对于POST请求,需要写入请求体数据。 5. 读取响应:如响应码、响应头和响应体数据。 6. 关闭连接:使用完毕后记得关闭连接,释放资源。 在`AsyncTask`中,`...
本篇文章将深入探讨如何使用`HttpURLConnection`进行网络编程,包括文本和图片的解析。 首先,我们需要理解`HttpURLConnection`的基本用法。当发起一个HTTP请求时,我们通常会先创建一个URL对象,然后通过`open...
4. 设置连接超时和读取超时,以防止程序卡死: ```java connection.setConnectTimeout(15000); connection.setReadTimeout(15000); ``` 5. 对于POST请求,设置请求体和Content-Type: ```java connection....
本文将详细讲解如何在Java环境中,通过自定义的jar包来处理SOAP请求的超时设置。 首先,`带有请求超时设置的soap jar包`意味着这个jar包已经经过了修改,允许开发者为SOAP请求指定一个自定义的超时时间。默认情况下...
总的来说,这段代码展示了如何利用`HttpURLConnection`进行文件下载的基本步骤,包括创建连接、设置超时、读取和写入数据。注意,实际应用中可能需要考虑更多的异常处理和错误恢复策略,以及更高效的下载策略,如...
当我们需要从网络上获取资源,如图片,HTTPURLConnection是Java标准库提供的一种有效方法。本篇将深入讲解如何利用HTTPURLConnection从网络上获取一张图片并将其显示出来。 首先,理解HTTPURLConnection的基本原理...
`HttpURLConnection`允许我们设置各种请求属性,比如HTTP方法、超时时间、请求头等。例如,我们可以这样设置POST请求: ```java connection.setRequestMethod("POST"); connection.setConnectTimeout(5000); // ...
4. **设置超时**:通过`setReadTimeout()`和`setConnectionTimeout()`方法,可以设定读取数据和建立连接的超时时间,以防止程序因等待响应而无响应。 5. **设置请求方法**:使用`setRequestMethod()`方法指定请求...
除了基本的请求和响应处理,HttpURLConnection还支持设置连接超时和读取超时,这对于防止程序在等待响应时阻塞非常重要: ```java connection.setConnectTimeout(5000); // 设置连接超时为5秒 connection....
HttpUrlConnection是Android系统提供的一个基础网络通信接口,相较于其他如Volley、OkHttp等第三方库,它更轻量级,适合对性能有较高要求或需要自定义网络操作的场景。 首先,我们来看HttpUrlConnection的基本用法...
7. **设置连接和读取超时**:为了避免网络延迟导致的阻塞,可以使用`setConnectTimeout()`和`setReadTimeout()`设置超时时间。 8. **获取响应码**:通过`getResponseCode()`检查服务器是否成功接收请求。200表示...
1. 设置连接属性:设置请求方法(GET),允许输入和输出流,并设置超时时间。 2. 连接服务器:调用`connect()`方法建立连接。 3. 读取响应:获取输入流并读取数据。 4. 保存图片:将读取的数据写入本地文件。 5. ...
本篇文章将深入探讨如何在Android中简单使用`HttpURLConnection`进行网络请求。 首先,了解`HttpURLConnection`的基本用法。在Android中,网络操作通常在子线程(非UI线程)中进行,以避免阻塞主线程导致应用无响应...
1. 设置超时:可以设置连接超时和读取超时,防止程序卡死。 ```java connection.setConnectTimeout(5000); // 连接超时5秒 connection.setReadTimeout(10000); // 读取超时10秒 ``` 2. 使用HTTP缓存:...
默认情况下,`HttpURLConnection`没有设置超时,如果网络出现问题,程序可能会无限制地等待响应,导致程序阻塞。我们需要分别设置连接超时(connectTimeout)和读取超时(readTimeout),确保在一定时间内未得到响应...
可以设置超时时间,如`connection.setConnectTimeout(5000)`(5秒),以及读取超时,如`connection.setReadTimeout(5000)`。 5. **处理响应**: 请求发送后,`HttpURLConnection`会返回响应码,通常200表示成功。...
在描述中提到的"重写ServiceConnectionService与HttpTransportSErvice实现超时设置",实际上是指对这两个类进行扩展以自定义超时时间。下面是如何实现这个过程: 1. 创建自定义的`ServiceConnection`: 首先,你...
3. **设置连接属性**:可能需要设置超时时间,如读取超时和连接超时。 ```java connection.setConnectTimeout(5000); connection.setReadTimeout(5000); ``` 4. **开启请求**:这会建立实际的网络连接。 ```java ...