日期:2014-05-20  浏览次数:20707 次

谁来看下我这个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); //显示文本信息

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