在无线J2ME设备上实现超文本传输协议[Java编程]
本文“在无线J2ME设备上实现超文本传输协议[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
随着越来越多手提电话和个人数字助理开始融入到信息高速公路之上,从移动设备上拜候Web站点变得越来越重要.Java创始了消费设备中小型的储存容量的先河,它是用于开辟手机、传呼机及其他微型设备利用程序的抱负语言.
在本文中,我们将学习若何从一个J2ME客户机上向服务器发送一条HTTP GET恳求和一条HTTP POST恳求.固然这只是一篇探究性质的文章,但是我还是假定读者已经熟习Java,J2ME,以及Java Midlets(MIDP利用程序)的运作机制.我们将利用J2ME的MIDP简表,并操纵SUN的J2ME的无线利用程序开辟工具包编译、配置和测试我们的利用程序.关于HTTP服务器,任何WWW地址都可以被拜候,但是默许时我们将利用一个简单的Java Servlet来返回我们的HTTP恳求的细节.
若何利用J2ME客户机向Web服务器和近似的支持HTTP的服务器发送HTTP恳求呢?答案就是利用可在javax.microedition.io程序包中可找到的J2ME的网络类.本文就想具体阐述这个问题.
本文概述∶
利用J2ME计划无线网络利用程序
.发送一条超文本GET恳求
.发送一条超文本POST恳求
.利用J2ME举行无线网络编程
Java的网络编程本领是相当结实的.Java 2尺度版( J2SE)在java.io和java.net程序包中定义了100多个接口程序,类和非常.通过这些库实现的功效是很强盛的,但是这只实用于传统的计算机系统,这些计算机系统有强盛的CPU处理本领,快速的内存和长期的数据储存,但是这些在大大都的无线设备上是不实际的.因此,J2ME定义了这些函数的子集,并供应了一套用于网络和文件拜候的固定的程序包--- javax.microedition.io程序包.由于可移动设备种类繁多,这个程序包仅仅定义了一套接口,而为每个可移动设备供应厂商留下了实际的利用程序接口实现.这就在可移植性和设备特定特点的利用中找到了一个最佳的均衡点.
定义在javax.microedition.io类中的抽象网络和文件输入输出框架称为通用衔接框架(Generic Connection Framework,简称GCF).GCF定义了一套有关抽象化的内容来描写差别的通信办法.最高级的抽象被称作衔接(Connection),还声明了六个接口(四个是直接的,两个是间接的).这七个接口就构成了J2ME的CLDC的一部份,CLDC是大大都的能利用Java的无线设备利用的配置.计划这个配置的目的就是为全部的CLDC设备(手提电话,双向传呼机,低档的PDA等等)供应公用的网络和文件输入输出本领.固然GCF的目的是公用网络和文件输入输出框架,但是生产商并不要务实现GCF中声明的全部的接口.有的厂家可以决意只支持socket衔接,而别的的厂家可以挑选只支持基于数据报的通信.为了增长超越近似装配的可移植性,MIDP标准要求全部的MIDP设备实现HttpConnection接口.HttpConnection不是GCF的一部份,但是它是从GCF的一个接口ContentConnection衍生出来的.我们将利用HttpConnection接口构造我们样本利用程序.
发送一个HTTP GET恳求
这一节将重点注释程序代码,在下一节中我们将只报告被用来发送HTTP恳求并检索由服务器返回的呼应通用衔接框架接口和HttpConnection接口.成立MIDP用户界面的程序代码见附录.
我们先要定义一个办法来放用于发送HTTP GET恳求的代码.因为这个办法中的有些操作有潜在的抛出IOException的大概,所以我们将把这样的不测(exception)抛给调用办法.
public String sendHttpGet( String url ) throws IOException {
HttpConnection hcon = null;
DataInputStream dis = null;
StringBuffer message = "";
try {
第一步是利用Connector类翻开一个到服务器的衔接,这是GCF的关键.我们将把这个衔接强迫转换为需求的范例,在本例中为HttpConnection范例.
hcon = ( HttpConnection ) Connector.open( url );
接下来,我们得到HttpConnection上的一个DataInputStream,答应我们一个字符一个字符的读取服务器的呼应数据.
dis = new DataInputStream( hcon.openInputStream() );
利用DataInputStream的read ()办法,服务器呼应的每个字符都被集合起来放入StringBuffer对象.
int ch;
while ( ( ch = dis.read() ) != -1 ) {
message = message.append( ( char ) ch );
}
最后,衔接对象被净空以保存资源,而信息从这个办法中返回.
} finally {
若何发送一个HTTP POST恳求
if ( hcon != null ) hcon.close();
if ( dis != null ) dis.close();
}//完毕try/finally代码段
return message.toString();
}//完毕 sendGetRequest( String )
以上是“在无线J2ME设备上实现超文本传输协议[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |