`
lzj0470
  • 浏览: 1273771 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

HttpURLConnection中如何设置网络超时

    博客分类:
  • java
阅读更多

Java中可以使用HttpURLConnection来请求WEB资源。 

HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下: 

String szUrl = "http://www.163.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)

分享到:
评论

相关推荐

    android之通过HttpURLConnection类查看网络图片、源码例子

    1. 设置连接属性:设置请求方法(GET),允许输入和输出流,并设置超时时间。 2. 连接服务器:调用`connect()`方法建立连接。 3. 读取响应:获取输入流并读取数据。 4. 保存图片:将读取的数据写入本地文件。 5. ...

    Android网络请求框架基于HttpUrlConnection的封装

    在Android应用开发中,网络请求是必不可少的一部分,用于获取服务器数据、更新UI或者进行其他交互。本篇文章将深入探讨如何基于HttpUrlConnection实现一个自定义的网络请求框架。HttpUrlConnection是Android系统提供...

    带有请求超时设置的soap jar包

    本文将详细讲解如何在Java环境中,通过自定义的jar包来处理SOAP请求的超时设置。 首先,`带有请求超时设置的soap jar包`意味着这个jar包已经经过了修改,允许开发者为SOAP请求指定一个自定义的超时时间。默认情况下...

    HttpURLConnection文件下载\httpURLConnection文件下载

    总的来说,这段代码展示了如何利用`HttpURLConnection`进行文件下载的基本步骤,包括创建连接、设置超时、读取和写入数据。注意,实际应用中可能需要考虑更多的异常处理和错误恢复策略,以及更高效的下载策略,如...

    Java HttpURLConnection超时和IO异常处理

    在Java编程中,`HttpURLConnection` 是用于执行HTTP请求的核心类,它提供了基本的网络连接功能,包括设置超时和处理可能出现的IO异常。在上述的代码示例中,开发者试图通过HTTP GET方法从指定的URL获取数据。下面将...

    Httpurlconnection

    除了基本的请求和响应处理,HttpURLConnection还支持设置连接超时和读取超时,这对于防止程序在等待响应时阻塞非常重要: ```java connection.setConnectTimeout(5000); // 设置连接超时为5秒 connection....

    Httpurlconnection请求网络数据,使用Android Studio.zip

    首先,确保在AndroidManifest.xml中设置了大内存缓存: ```xml ... android:largeHeap="true"> ... ``` 然后,读取图片数据并转化为Bitmap: ```java try (InputStream is = connection.getInputStream()) { ...

    Android网络连接2——HttpURLConnection

    在Android应用开发中,网络连接是必不可少的一部分,用于获取服务器数据、更新应用内容或与远程服务交互。在本文中,我们将深入探讨`HttpURLConnection`,它是Android系统中用于HTTP通信的一种标准API。`...

    Android使用HttpURLConnection访问网络

    本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...

    Android httpUrlConnection Post方式访问网络简单demo

    7. **设置连接和读取超时**:为了避免网络延迟导致的阻塞,可以使用`setConnectTimeout()`和`setReadTimeout()`设置超时时间。 8. **获取响应码**:通过`getResponseCode()`检查服务器是否成功接收请求。200表示...

    AsyncTask结合HttpUrlConnection的例子

    3. 设置请求属性:如超时时间、请求头等。 4. 发送请求:对于POST请求,需要写入请求体数据。 5. 读取响应:如响应码、响应头和响应体数据。 6. 关闭连接:使用完毕后记得关闭连接,释放资源。 在`AsyncTask`中,`...

    使用HttpURLConnection

    默认情况下,`HttpURLConnection`没有设置超时,如果网络出现问题,程序可能会无限制地等待响应,导致程序阻塞。我们需要分别设置连接超时(connectTimeout)和读取超时(readTimeout),确保在一定时间内未得到响应...

    Android 简单使用 HttpURLConnection

    本篇文章将深入探讨如何在Android中简单使用`HttpURLConnection`进行网络请求。 首先,了解`HttpURLConnection`的基本用法。在Android中,网络操作通常在子线程(非UI线程)中进行,以避免阻塞主线程导致应用无响应...

    android HttpURLConnection,AsyncHttpClient网络请求实例

    同时,为了提高用户体验,还需考虑在网络请求过程中显示加载指示器,并处理网络错误,如超时、无网络等问题。 综上所述,Android应用开发中的网络请求是一个关键领域,掌握HttpURLConnection和AsyncHttpClient的...

    使用HttpURLConnection进行网络编程

    在Android开发中,网络编程是不可或缺的一部分,而`HttpURLConnection`是Java标准库提供的一种用于HTTP通信的API,它在Android SDK中也被广泛使用。相较于旧的`HttpClient`,`HttpURLConnection`更轻量级、更高效,...

    使用HttpURLConnection下载图片

    在本例中,我们将探讨如何使用`HttpURLConnection`来下载图片,这是一个基础但实用的网络编程任务。下面我们将详细介绍这个过程,并涉及到的相关知识点。 1. **HttpURLConnection简介**: `HttpURLConnection`是`...

    远程连接服务器HttpURLConnection

    另外,`HttpURLConnection`支持设置超时、处理重定向等高级特性。 至于文件`jyWebClient`和`jyWebService`,它们可能是实现特定Web客户端或服务端功能的Java代码示例。这些文件可能包含了如何利用`...

    Android超时处理

    在`HttpURLConnection`中,可以通过`setConnectTimeout()`和`setReadTimeout()`设置这两个超时值。对于OkHttp,可以使用` OkHttpClient.Builder().connectTimeout() .readTimeout()`进行设置。 在处理超时时,我们...

    HttpURLConnection使用总结示例源码

    HttpURLConnection是Java标准库中的一个类,它是HTTP协议的基础实现,用于在客户端和服务器之间建立网络连接并进行数据传输。这个类是Java程序员在进行网络编程时常用的工具,尤其是在发送HTTP请求和处理响应时。本...

    ksoap设置超时

    本篇将详细解释如何在ksoap2中设置超时,以提高应用的健壮性。 首先,我们需要了解两个关键类:`ServiceConnection`和`HttpTransportSE`。`ServiceConnection`是Android系统提供的接口,用于管理应用程序与服务之间...

Global site tag (gtag.js) - Google Analytics