`
天天向上1989
  • 浏览: 418249 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

【转】HttpConnection相关

    博客分类:
  • Java
阅读更多

 

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", "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);

在1.5中,还可以使用HttpURLConnection的父类URLConnection的以下两个方法:

setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)

例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);

 

需要注意的是,笔者在JDK1.4.2环境下,发现在设置了defaultReadTimeout的情况下,如果发生网络超 时,HttpURLConnection会自动重新提交一次请求,出现一次请求调用,请求服务器两次的问题(Trouble)。我认为这是 JDK1.4.2的一个bug。在JDK1.5.0中,此问题已得到解决,不存在自动重发现象。

 

【转自 http://www.cnblogs.com/cnsoft/archive/2006/04/18/377967.html】

分享到:
评论

相关推荐

    Android网络开发详解

    `HttpURLConnection`是`URLConnection`的一个子类,提供了更多与HTTP相关的特性。 - **设置连接参数**:在发起实际的网络请求之前,可以通过`setConnectTimeout()`等方法设置超时时间、请求头等参数。 - **连接到...

    http j2me 图片上传

    在这个场景下,`res`可能包含了待上传的图片,而`src`包含与图片上传相关的Java代码。 综上所述,实现J2ME中的图片上传涉及了HTTP通信、图片数据处理、POST请求构造等多个环节,需要结合客户端和服务器端的代码协同...

    Java_ME嵌入式程序设计_张家耀_何雪芳_宋梅__程序源代码

    这个压缩包文件中的内容,"Java_ME嵌入式程序设计_张家耀_何雪芳_宋梅__程序源代码",显然是与Java ME相关的程序设计教材或教程的源代码实例。 Java ME为开发者提供了一个统一的开发环境,可以在各种具有有限计算和...

    调用第三方接口和将json转化为list的jar包(包含httpClient,httpCore,Gson)

    在IT行业中,与“调用第三方接口和将json转化为list的jar包(包含httpClient,httpCore,Gson)”相关的知识点主要包括三个核心部分:HTTPClient、HTTPCore和Gson。这些是Java开发中非常重要的库,用于处理网络请求...

    基于Java ME无线网络移动端的俄罗斯方块游戏的实现(源代码+论文).rar

    这需要利用Java ME的网络API(如HttpConnection)来实现网络通信。 6. **性能优化**:考虑到移动设备资源有限,优化代码以降低内存占用和提高运行效率至关重要。比如,避免无谓的对象创建,合理使用缓存,以及对...

    OperationHttpConnection

    本示例“OperationHttpConnection”旨在深入浅出地讲解如何使用HttpConnection进行基本的网络通信操作,同时也融入了其他相关的编程知识。 HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从Web...

    QmlInWidget.zip

    在“FaceRecognition.cpp”中,开发者可能定义了相关的函数来加载预训练的Haar特征级联XML文件,并使用`cv::CascadeClassifier`进行人脸检测。同时,OpenCV的`detectMultiScale`方法用于在图像中查找人脸,返回人脸...

    JAVA开发基于Java ME无线网络移动端的俄罗斯方块游戏的实现(源代码+论文).zip

    这个项目不仅提供了源代码,还有一篇相关的论文,可以帮助开发者理解游戏背后的实现原理。 1. **Java ME简介** Java ME是Java平台的移动版本,用于开发和部署嵌入式设备和移动设备上的应用程序。它包括一套精简的...

    serlet和j2me 通信程序

    本篇文章将详细探讨“Serlet(应为Servlet)和J2ME通信程序”的相关知识点,包括它们各自的定义、工作原理以及如何实现这两种技术间的通信。 #### 二、Servlet简介 Servlet 是 Java 平台的一种服务器端组件,用于...

    HttpClient4.5所需jar包

    它包含如`HttpHost`、`HttpRequest`、`HttpResponse`等基本HTTP概念的实现,以及`HttpConnection`和`HttpConnectionManager`等连接管理相关类。 3. **commons-io-2.4.jar**: Apache Commons IO是处理输入/输出...

    j2me,地图编辑器

    2. **地图数据存储**:在“MAPWIN.INI”文件中,可能存储了地图的相关配置信息,如图层设置、比例尺、默认视图等。INI文件是一种常见的配置文件格式,易于读写,适合小型应用。 3. **地图渲染**:地图编辑器需要...

    licai.rar_mobile banking

    MIDP提供了HttpConnection API,允许应用进行HTTP通信,实现数据的上传和下载。 4. 安全性:移动银行应用必须确保数据传输的安全性。虽然J2ME本身不包含强大的加密库,但开发者可以通过第三方库或者自定义算法实现...

    《J2ME Game Programming》随书源代码

    5. **网络通信**:J2ME游戏可能涉及在线多人游戏或数据同步,因此需要理解如何使用J2ME的Socket和HttpConnection API进行网络通信。 6. **数据存储**:J2ME游戏通常使用RecordStore API来存储游戏进度、用户数据等...

    tengge手机端j2me编程教程.doc

    4. **网络数据获取**:通过HttpConnection或RMS存储和检索网页内容。 【手机本地功能】 J2ME可以访问和操作手机本地资源: 1. **文件操作**:读取、写入、播放本地文件,甚至从压缩包中提取资源。 2. **音乐播放...

    MobileAlbum

    下面我们将深入探讨相关的知识点。 首先,J2ME是Java的一个子集,专门用于嵌入式系统,如手机、电视和家用电器等。它由配置(Configurations)、 profiles(配置文件)和可选包(Optional Packages)组成,其中MIDP...

    J2ME面试题汇总.rar

    以下是对 J2ME 面试题的一些详细解释和相关知识点: 1. **J2ME 架构**: J2ME 包含配置(Configurations)和框架(Profiles)。配置定义了平台的基本运行时环境,如 MIDP (Mobile Information Device Profile) ...

    J2ME中文教程

    MIDlet Suite是一组MIDlets和相关资源的集合,通过JAD(Java Application Descriptor)文件描述其元数据,包括版本、屏幕大小、所需的配置和profile等。 五、用户界面 J2ME提供两种基本的UI组件:Canvas和Form。...

    lib-j2me.zip_j2me lib

    标题中的"lib-j2me.zip_j2me lib"指向的是一份与J2ME游戏开发相关的资源库,它包含了对J2ME应用程序,特别是游戏开发至关重要的组件和工具。描述中提到的"java - j2me游戏开发必备",进一步强调了这个库在J2ME游戏...

    midp2.0接口文档(英文版)

    MIDlet Suite是MIDP应用的打包形式,包含一个或多个MIDlet类以及相关的资源配置文件。JAD文件是元数据文件,描述了MIDlet Suite的属性,如版本、大小、所需的配置等;JAR文件则包含了编译后的MIDlet类和资源。 ...

    J2ME8.rar_J2ME游戏_j2me

    J2ME游戏可能包含在线排行榜、多人对战等功能,这就需要用到J2ME的网络API,如HttpConnection和SocketConnection,实现数据的发送和接收。 10. **发布与部署** 完成游戏开发后,需要将其打包成JAR文件,通过WAP或...

Global site tag (gtag.js) - Google Analytics