快速业务通道

用J2ME进行联网 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
的 URL 处理

J2ME 中的 URL 处理涉及到从移动设备打开一个到 Web 服务器的连接并处理移动设备 到 Web 服务器间的数据 I/O。这个过程发生在下面的阶段:

建立(Setup),此时尚未建立到服务器的连接。移动设备准备一堆请求参数并准备接 受和解释随后的响应。

已连接(Connected),此时连接已经被建立,请求参数已经被发送并在期待响应。

已关闭(Closed),此时连接已经被关闭。

J2ME 定义了 javax.microedition.io.Connector 类,这个类包含了用于创建所有连 接对象的各个静态(static)方法。这一任务是通过根据平台名称和所请求连接的协议动 态地查找一个类来完成的。

在 URL 处理中,Connector.open() 用来打开 URL;它返回一个 HttpConnection 对 象。Connector.open() 方法的字符串(string)参数是一个有效的 URL。URL 字符串由 于通信协议的不同而不同,下面的清单 1 到清单 5 演示了这一点。

清单 1. 调用基于 HTTP 的通信

Connection conn = Connector.open("http://www.yahoo.com");

清单 2. 调用基于流的套接字通信

Connection conn = Connector.open ("socket://localhost:9000");

清单 3. 调用基于数据报的套接字通信

Connection conn = Connector.open("datagram://:9000");

清单 4. 调用串口通信

Connection conn = Connector.open("comm:0;baudrate=9000");

清单 5. 调用文件 I/O 通信

Connection conn = Connector.open("file://myfile.dat");

Connector.open() 方法还可以接受访问模式(值为 READ、WRITE 和 READ_WRITE ) 以及一个用来表示调用者想要得到超时通知的标志。

用J2ME进行联网(3)

时间:2011-04-02 IBM Soma Ghosh

在安全的联网中,当 https:// 连接字符串被访问时,Connector.open() 就会返回 HttpsConnection 。当 ssl:// 连接字符串被访问时,Connector.open() 就会返回 SecureConnection 。

无论使用哪一种类型的 URL,调用 Connector.open() 都会打开一个从 Connection 到 java.io.InputStream 的字节输入流。这个方法用来读取文件的每一个字符,一直读 到文件末尾(以 -1 为标志)。如果抛出一个异常,连接和流就会被关闭。

与此相似,为了进行输出,代表字节输出流的 java.io.OutputStream 将被从 Connection 打开。

InputStream 和 OutputStream 分别与 java.io.DataInputStream 和 java.io.DataOutputStream 相对应。DataInputStream 让应用程序用与机器无关的方式 从底层输入流读取基本的 Java 数据类型。java.io.DataOutputStream 让应用程序用可 移植的方式把基本的 Java 数据类型写到输出流。

清单 6 说明了如何使用 HttpConnection 从 URL 输入数据。

清单 6. 使用 HttpConnection 从 URL 输入数据

String getViaHttpConnection(String url) throws IOException {      HttpConnection c = null;      InputStream is = null;         StringBuffer str = new StringBuffer();         try {           c = (HttpConnection)Connector.open(url);          // Getting the InputStream will open the connection          // and read the HTTP headers. They are stored until          // requested.          is = c.openInputStream();          // Get the length and process the data        int len = (int)c.getLength();        int ch;        while ((ch = is.read()) != -1) {          str.append((char)ch);        }       } finally {       if (is != null)      

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号