快速业务通道

在无线J2ME设备上实现超文本传输协议 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
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 { if ( hcon != null ) hcon.close(); if ( dis != null ) dis.close(); }//结束try/finally代码段 return message.toString(); }//结束 sendGetRequest( String ) 如何发送一个HTTP POST请求

在无线J2ME设备上实现超文本传输协议(2)

时间:2011-02-28

你可以想象,发送一个HTTP POST请求的处理过程其实与发送一个GET请求非常地类似。我们将修改一个现有命令,添加少量的新的命令,并添加一个来自通用连接框架的附加的对象和一个附加的StringBuffer对象把POST请求体重的内容发送到服务器中。剩下的命令将保持不变。

复制我们刚才创建的sendHttpGet()方法,把它粘贴进同一个类文件,改名为sendHttpPost()。 现在,我们将修改这个新方法来发送一个HTTP POST请求到服务器。 在方法的顶部添加两个新的变量说明。 声明一个类型为DataOutputStream的变量和另一个String类型的变量。 我们将使用DataOutputStream对象把存在于字符串变量中的POST请求体发送到服务器中。

DataOutputStream dos = null; String requestBody = null;

修改connector.open()命令包含另一个参数,指出连接将允许客户端可以通过连接在服务器上读和写。

hcon = ( HttpConnection ) Connector.open( url, Connector.READ_WRITE );

设置HttpConnection对象使用的请求方法为POST(默认的方法是GET)。

hcon.setRequestMethod( HttpConnection.POST );

得到一个用于现有的HTTP连接的DataOutputStream对象。

dos = hc.openDataOutputStream();

声明一个字节数组并通过检索一个来自requestBody字符串的字节数组初始化。 然后把DataOutputStream的缓冲写入字节数组内。

byte[] byteRequest = requestBody.getBytes(); for( int i = 0; i < byteRequest.length; i++ ) { dos.writeByte(byteRequest[i]); }//结束for( int i = 0; i < byteRequest.length; i++ ) dos.flush(); //包含本句,在某些设被上将可能会产生不可预期的结果

调用flush ()方法的意图是发送已经写入的数据到DataOutputStream的服务器的缓冲区中。 在某些电话上,这个操作工作正常,在其他的电话上,它导致HTTP请求的Transfer - Encoding被设置为" chunked ",有一些随机字符被放到请求本身的前面和后面。那又怎样处理这个问题呢?这个方法调用实际上是根本不需要的。在接下来的一行中,服务器连接打开(通过openInputStream ()),将自动输入缓冲区。因此,你最好不要调用缓冲区的flush()方法。这个方法其余的部分保持不变,除了DataOutputStream对象必须在finally{}语句块中关闭。

} finally { if ( hc != null ) hc.close(); if ( dis != null ) dis.close(); if ( dos != null ) dis.close(); }//结束 try/finally

这就是所有的程序代码!并请参见本文后附带的程序代码。

随着可以使用国际互联网络和支持网络的无线设备日益的增多普及,Java和J2ME的重要性也在不断的变大。因为HTTP协议是当前仅有的,被所有的遵从MIDP规范的设备支持的网络协议,它也是用于开发无线网络应用程序的最好的候选者。

在本文中,我们探究了无线网络编程的基本结构和几个核心问题,我们看了如何调用两个最常用的HTTP请求方法:G

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号