读书人

哪位高手来看下小弟我这个http连接实例

发布时间: 2012-03-18 13:55:39 作者: rapoo

谁来看下我这个http连接实例在你的的手机模拟器上能否运行
在我的WTK上运行后提示一个什么的要连接的提示,还有一个yes和no让选择。选no后屏幕成为空白。选yes后还是连接不上网站。不知道怎么回事。
以下是完整代码:

import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

// 建立Http连接

public class Http extends MIDlet {
private Display display; //显示器
String url = "http://www.baidu.com/index.htm "; //待访问的地址

public Http() {
display = Display.getDisplay(this); //获取显示器
}

public void startApp() {
getConnection(url);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void getConnection(String url){
try{
ContentConnection connection = (ContentConnection) Connector.open(url); //获取连接
TextBox tb = null; //显示文本的TextBox对象
StringBuffer sb = new StringBuffer(); //字符串缓冲
InputStream is = connection.openInputStream(); //获取输入流
int ch;
while((ch = is.read()) != -1) { //读取字符
sb.append((char)ch); //增加字符到缓冲区
}
tb = new TextBox( "取得文本信息 ", sb.toString(), 1024, 0); //显示文本信息
display.setCurrent(tb); //设置当前的显示屏幕
}
catch (Exception ex){}
}

}

[解决办法]
很显然是1024惹得祸。你调试一下,到

tb = new TextBox( "取得文本信息 ", sb.toString(), 1024, 0); //显示文本信息

这行,抛出异常。不过内容真的读取出来了。你可以用

System.out.println(sb.toString());

这行替换

tb = new TextBox( "取得文本信息 ", sb.toString(), 1024, 0); //显示文本信息

就可以在控制台看到取下来的结果了。

读书人网 >J2ME开发

热点推荐