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

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中,此问题已得到解决,不存在自动重发现象。
分享到:
评论

相关推荐

    Java建立HttpConnection连接的例子.rar

    Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下:  ContentConnection connection = (ContentConnection) ...

    建立HTTP连接请求-易语言

    本文将围绕“建立HTTP连接请求”这一主题,深入讲解其在易语言中的实现方法,以及相关的核心知识点。 易语言是一种以中文编程为特色的程序设计语言,它的设计理念是使编程变得更加简单易懂。在易语言中实现HTTP连接...

    j2me http通信demo

    本示例是一个关于J2ME实现HTTP通信的演示项目,旨在帮助开发者理解和应用相关技术。 首先,J2ME中的HTTP通信主要通过`javax.microedition.io.Connector`类和`HttpConnection`接口来实现。`HttpConnection`提供了对...

    j2me相关知识03

    这个专题将深入探讨J2ME的相关知识,包括Java的基础概念以及如何在手机和嵌入式平台上进行Java应用开发。 首先,我们要理解J2ME的核心架构。J2ME由配置(Configurations)、配置文件(Profile)和可选包(Optional ...

    在无线J2ME设备上实现http传输.doc

    2. 强制转换返回的对象为`HttpConnection`类型,这样就可以调用与HTTP协议相关的特有方法。 3. 设置HTTP请求的属性,如设置请求头或方法类型(GET或POST)。 4. 调用`HttpConnection`的`openDataInputStream()`或`...

    python做get和post请求

    总的来说,这些文件涵盖了Python中进行HTTP GET和POST请求的基本方法,以及处理Cookie和数据加密的相关技术。学习和理解这些内容将有助于你更好地进行网络编程,与Web服务进行有效交互。通过分析和理解这些代码,你...

    Android网络开发详解

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

    Java手机程序设计入门13

    - **位置**:所有与GCF相关的类、接口及异常都被包含在`javax.microedition.io`包中。 ##### 2.2 GCF接口与继承体系 GCF定义了多个接口,用于不同的网络连接需求: - `Connection`: 所有连接的基类。 - `...

    MIDP 1.0联网开发相关实例代码

    在这个"**MIDP 1.0联网开发相关实例代码**"中,我们可以深入学习如何利用MIDP进行网络通信。在移动设备上实现网络功能是至关重要的,因为这允许用户访问互联网服务,如下载内容、在线游戏、社交媒体互动等。 首先,...

    BlackBerry 网络连接编程

    这种连接方式依赖于BlackBerry MDS Services来处理所有与网络相关的请求,例如浏览器请求和数据连接请求,并且负责对数据进行加密处理。 在实际应用中,为了确保应用程序能够通过BlackBerry MDS Services进行连接,...

    http j2me 图片上传

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

    一个在线播放音乐的代码

    在压缩包文件"YYMusic"中,可能包含了该音乐播放器的源代码、音频资源或其他相关文件。通过查看和分析这些文件,你可以更深入地理解J2ME音乐播放器的实现细节,同时也可以学习如何将这些技术应用到自己的项目中。...

    python http 服务端客户端

    ... 导入相关库:首先需要导入http.server模块。 ... ...可以从请求中获取参数、头部...创建HTTP连接:使用http.client.HTTPConnection类创建一个HTTP连接对象,指定目标主机和端口。 发送HTTP请求:使用HTTP连接对象的req

    J2ME开发大全环境搭建

    - **集成开发环境(IDE)**:选择一个适合J2ME开发的IDE非常重要,比如Eclipse(通过安装相关的插件来支持J2ME开发)或NetBeans(自带对J2ME的支持)。 - **Java Development Kit (JDK)**:确保安装了最新版本的JDK...

    struts扫描及利用工具(2018-11新版)

    # struts-scan 快速检测struts命令执行漏洞,可批量。 # 运行环境 MAC/Linux下的Python2 # 支持对以下版本的检测 ...此工具仅限于漏洞验证,如若使用者引起相关的法律责任请自负,开发者不承担连带责任。

    j2me-xmlrpc.rar

    《J2ME与XML-RPC技术详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于...通过深入理解XML-RPC的工作原理和J2ME的相关限制,开发者可以利用这些资源构建出跨越移动设备和服务器的高效通信系统。

    j2me经典简单程序集合

    这个“j2me经典简单程序集合”显然是一个包含多个示例程序和相关文档的资源包,旨在帮助开发者理解和学习如何在J2ME平台上进行开发。 J2ME主要由配置(Configurations)和 profiles(Profile)组成,例如基础的CLDC...

    Java移动通信程序设计.rar_java 手机_手机 java_移动通信

    在这个例子中,"Java移动通信程序设计"可能涉及到如何利用J2ME的API来实现手机通信相关的功能,如短信发送、通话管理、数据连接等。 MIDP是J2ME的一个关键部分,它为开发者提供了开发移动应用所需的库和框架。这些...

    J2ME_WTK_API.chm

    1. **MIDlet Suite**:这是J2ME应用程序的基本单元,由一个或多个MIDlets(J2ME应用程序的实例)组成,以及相关的资源文件。 2. **MIDlet类**:MIDlet是J2ME应用的主要入口点,继承自javax.microedition.midlet....

Global site tag (gtag.js) - Google Analytics