例如:
HttpConnection c=(HttpConnection)Connector.open(URL);
InputStream is=c.openInputStream();
c.close();
while((int ch=is.read())!=-1){
……
}
is.close();
换句话说连接被关闭了,但依然可以读到缓冲区的数据。但不推荐你这么做,最好是处理完所有的工作后,最后关闭连接。
7.3.3 建立HTTP连接
应用程序通过javax.microedition.io.Connector.open这个方法打开连接(在这里要提到的是,这个方法可以打开的不仅仅是HTTP连接,后面所要说的Socket,UDP连接都要通过这个方法打开的)该方法有3个版本,分辨是一个参数、两个参数、和三个参数的。而且该方法是静态的。
javax.microedition.io.Connector.open(String name)
javax.microedition.io.Connector.open(String name,int mode)
javax.microedition.io.Connector.open(String name int mode, boolean timeout)
这个三个参数分别是连接的字符串、读写的类型(javax.microedition.io.Connector.READ、javax.microedition.io.Connector.WRITE、javax.microedition.io.Connector.READ_WRITE)和超时的时候是否抛出异常。
一般情况我们只用到第一个就好了。其中的name 这个参数必须以URI形式提供。比如http://www.j2medev.com。打开一个连接的时候,在服务器响应之前都可能阻塞应用线程。在开发应用程序的时候,一定要确保把打开连接的代码放到一个单独线程中。
如下建立连接的一个例子:
HttpConnection c= (HttpConnection) Connector.open("http://www.j2medev.com");
得到HttpConnection对象后,建立的连接处于setup的状态。