|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
手机用到的是用j2me所编出来的小程序。
跟着愈来愈多手提德律风和团体数字助理入手下手融进到信息高速公路之上,从挪动设备上会见Web站点变得愈来愈主要。Java创始了消耗设备中小型的贮存容量的先河,它是用于开辟手机、传呼机及其他微型设备使用程序的幻想言语。
在本文中,我们将进修怎样从一个J2ME客户机上向服务器发送一条HTTPGET哀求和一条HTTPPOST哀求。固然这只是一篇切磋性子的文章,可是我仍是假定读者已熟习Java,J2ME,和JavaMidlets(MIDP使用程序)的运作机制。我们将利用J2ME的MIDP简表,并使用SUN的J2ME的无线使用程序开辟工具包编译、设置和测试我们的使用程序。关于HTTP服务器,任何WWW地点都能够被会见,可是默许时我们将利用一个复杂的JavaServlet来前往我们的HTTP哀求的细节。
怎样利用J2ME客户机向Web服务器和相似的撑持HTTP的服务器发送HTTP哀求呢?谜底就是利用可在javax.microedition.io程序包中可找到的J2ME的收集类。本文就想详细论述这个成绩。
本文概述∶
利用J2ME计划无线收集使用程序
.发送一条超文本GET哀求
.发送一条超文本POST哀求
.利用J2ME举行无线收集编程
Java的收集编程才能是相称强健的。Java2尺度版(J2SE)在java.io和java.net程序包中界说了100多个接口程序,类和非常。经由过程这些库完成的功效是很壮大的,可是这只合用于传统的盘算机体系,这些盘算机体系有壮大的CPU处置才能,疾速的内存和耐久的数据贮存,可是这些在年夜多半的无线设备上是不实际的。因而,J2ME界说了这些函数的子集,并供应了一套用于收集和文件会见的流动的程序包---javax.microedition.io程序包。因为可挪动设备品种单一,这个程序包仅仅界说了一套接口,而为每一个可挪动设备供给厂商留下了实践的使用程序接话柄现。这就在可移植性和设备特定特性的使用中找到了一个最好的均衡点。
界说在javax.microedition.io类中的笼统收集和文件输出输入框架称为通用毗连框架(GenericConnectionFramework,简称GCF)。GCF界说了一套有关笼统化的内容来形貌分歧的通讯办法。第一流的笼统被称作毗连(Connection),还声了然六个接口(四个是间接的,两个是直接的)。这七个接口就组成了J2ME的CLDC的一部分,CLDC是年夜多半的能利用Java的无线设备利用的设置。计划这个设置的目标就是为一切的CLDC设备(手提德律风,双向传呼机,高档的PDA等等)供应公用的收集和文件输出输入才能。固然GCF的目标是公用收集和文件输出输入框架,可是临盆商其实不请求完成GCF中声明的一切的接口。有的厂家能够决意只撑持socket毗连,而别的的厂家能够选择只撑持基于数据报的通讯。为了增进超过相似安装的可移植性,MIDP标准请求一切的MIDP设备完成HttpConnection接口。HttpConnection不是GCF的一部分,可是它是从GCF的一个接口ContentConnection衍生出来的。我们将利用HttpConnection接口机关我们样本使用程序。
发送一个HTTPGET哀求
这一节将重点注释程序代码,鄙人一节中我们将只报告被用来发送HTTP哀求并检索由服务器前往的呼应通用毗连框架接口和HttpConnection接口。创立MIDP用户界面的程序代码见附录。
我们先要界说一个办法来放用于发送HTTPGET哀求的代码。由于这个办法中的有些操纵有潜伏的抛出IOException的大概,以是我们将把如许的不测(exception)抛给挪用办法。
publicStringsendHttpGet(Stringurl)throwsIOException{
HttpConnectionhcon=null;
DataInputStreamdis=null;
StringBuffermessage="";
try{
第一步是利用Connector类翻开一个到服务器的毗连,这是GCF的关头。我们将把这个毗连强迫转换为必要的范例,在本例中为HttpConnection范例。
hcon=(HttpConnection)Connector.open(url);
接上去,我们失掉HttpConnection上的一个DataInputStream,同意我们一个字符一个字符的读取服务器的呼应数据。
dis=newDataInputStream(hcon.openInputStream());
利用DataInputStream的read()办法,服务器呼应的每一个字符都被会合起来放进StringBuffer对象。
intch;
while((ch=dis.read())!=-1){
message=message.append((char)ch);
}
最初,毗连对象被净空以保留资本,而信息从这个办法中前往。
}finally{
if(hcon!=null)hcon.close();
if(dis!=null)dis.close();
}//停止try/finally代码段
returnmessage.toString();
}//停止sendGetRequest(String) 怎样发送一个HTTPPOST哀求
<p>
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 |
|