j2me如何读取网上资源文件例如文本文件,图形文件。

例如,读取www.kingdart.cn/jaccount/imobile.png 转换为Image
又例如:读取www.kingdart.cn/jaccount/readme.txt 转换为String

只在模拟器上成功我也会,要求是真机上成功!
搞了我二天了,读到的是一些xml的文本,根本不沾边!
评论
ralphwho 2008-03-26
我是北京的,cmnet不会有你说的这个资费提醒,wap会有。唉,运营商也来捣乱。。。。
iwinyeah 2008-03-26
Congratulation!

返回的是移动资费页面!
需要想办法将这个页面忽略掉
由于我返回的是text文件,我方法是
while(true){
	if(sc != null){
		sc.close();
	}
	sc = (HttpConnection)Connector.open(url,Connector.READ, true);
	sc.setRequestMethod(HttpConnection.GET);
	if(sc.getHeaderField("Content-Type").equals("text/plain")){
		break;
	}
	if(++i > 5){
		throw new IOException("Reach max connection count!");
	}
}

你所说的cmnet和cmwap我都试过了,我这个地方都是一样的,都会有资费提醒。
无论如何,问题应该解决了,感谢ralphwho的积极参与,感谢所有关心这个问题的人!
多谢!
ralphwho 2008-03-26
果然不出我所料,我在Nokia E70上运行,如果选择了wap的接入点,就返回了你写的那些东西。应该用cmnet!。wap和internet不是一个网,wap不是internet。你在你手机改过来就行了,怎么配置网上很多的。
ralphwho 2008-03-26
刚才我在我的Nokia E70上运行了一下,也没有问题。还有你看一下,你的手机的中国移动网络接入点不能是wap的好象,应该是cmnet的
iwinyeah 2008-03-26
那就奇怪了,我按您的代码,测试过se P990,nk6070,se k750都不行(WTK当然无问题)
返回的内容是:
<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD/WML 1.1//EN"....等内容
ralphwho 2008-03-26
class HttpTest extends FunctionTest
{
private HttpConnection conn;
private static String url="http://www.kingdart.cn:80/jaccount/readme.txt";
private InputStream is;
public HttpTest(String name)
{
super(name);
// TODO Auto-generated constructor stub
}

protected void run()
{
byte[] buf=new byte[0];
String text="";
try
{
conn=(HttpConnection)Connector.open(url,Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
int rc = conn.getResponseCode();
is=conn.openInputStream();
buf = new byte[300];
is.read(buf);
text=new String(buf,"UTF-8");
} catch (IOException e)
{
appendPrint(e.getMessage());
e.printStackTrace();
}


appendPrint(text);

}

protected void tearDown()
{


}



}

我在我的机器上run了以上代码,WTK上,一点问题没有,都读出来了。text里面就是那个文件的内容,我只读了300字节的。
iwinyeah 2008-03-26
以前在真机上已经试过了,包括post,get,都试了,不行。资料说明httpconnection缺省用的就是get方法,
ralphwho 2008-03-26
这样试试:

sc = (HttpConnection)Connector.open(KINGDART_DOMAIN + "jaccount/readme.txt");
sc.setRequestMethod(HttpConnection.GET);
int rc = sc.getResponseCode();
if (rc != HttpConnection.HTTP_OK) {
throw new IOException("HTTP response code: " + rc);
is = sc.openInputStream();
iwinyeah 2008-03-26
在手机自带的浏览器里http://www.kingdart.cn/jaccount/readme.txt是可以看到的,注释掉的代码也已试过不行了.
iwinyeah 2008-03-26
目前进度
private final static String proxy;// = "http://10.0.0.172:8080/";
private final static String X_ONLINE_HOST = "X-Online-Host";
private final static String KINGDART_DOMAIN = "http://www.kingdart.cn:80/";

HttpConnection sc = null;
InputStream is = null;
FieldInputStream fs = null;
try {
	if(midlet.proxy != null){
		sc = (HttpConnection)Connector.open(midlet.proxy + KINGDART_DOMAIN + "jaccount/readme.txt", Connector.READ, true);
		sc.setRequestProperty(X_ONLINE_HOST, KINGDART_DOMAIN + "jaccount/readme.txt");
	}else{
		sc = (HttpConnection)Connector.open(KINGDART_DOMAIN + "jaccount/readme.txt",
Connector.READ, true);
	//sc.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
	//sc.setRequestProperty("Content-type", "text/plain"); //image/x-png
	int rc = sc.getResponseCode(); 
	if (rc != HttpConnection.HTTP_OK) {
		throw new IOException("HTTP response code: " + rc);
	}
	is = sc.openInputStream();
	// ... 省略, 没有异常抛出,但读出一片垃圾(一个xml的文件头)而不是所要求的文件
发表评论

您还没有登录,请登录后发表评论

iwinyeah
搜索本博客
我的相册
C8609f76-ccc2-3dbc-a9e8-b5e08077b8c2-thumb
jaccount1.0.7
共 5 张
最近加入圈子
存档
最新评论