专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

j2me怎么读取网下资源文件例如文本文件,图形文件

发布时间:2011-06-27 20:26:47 文章来源:www.iduyao.cn 采编人员:星星草
j2me如何读取网上资源文件例如文本文件,图形文件
j2me如何读取网上资源文件例如文本文件,图形文件。

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

只在模拟器上成功我也会,要求是真机上成功!
搞了我二天了,读到的是一些xml的文本,根本不沾边!
1 楼 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的文件头)而不是所要求的文件
2 楼 iwinyeah 2008-03-26  
在手机自带的浏览器里http://www.kingdart.cn/jaccount/readme.txt是可以看到的,注释掉的代码也已试过不行了.
3 楼 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(); 
4 楼 iwinyeah 2008-03-26  
以前在真机上已经试过了,包括post,get,都试了,不行。资料说明httpconnection缺省用的就是get方法,
5 楼 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字节的。
6 楼 iwinyeah 2008-03-26  
那就奇怪了,我按您的代码,测试过se P990,nk6070,se k750都不行(WTK当然无问题)
返回的内容是:
<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD/WML 1.1//EN"....等内容
7 楼 ralphwho 2008-03-26  
刚才我在我的Nokia E70上运行了一下,也没有问题。还有你看一下,你的手机的中国移动网络接入点不能是wap的好象,应该是cmnet的
8 楼 ralphwho 2008-03-26  
果然不出我所料,我在Nokia E70上运行,如果选择了wap的接入点,就返回了你写的那些东西。应该用cmnet!。wap和internet不是一个网,wap不是internet。你在你手机改过来就行了,怎么配置网上很多的。
9 楼 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的积极参与,感谢所有关心这个问题的人!
多谢!
10 楼 ralphwho 2008-03-26  
我是北京的,cmnet不会有你说的这个资费提醒,wap会有。唉,运营商也来捣乱。。。。
11 楼 wangxc 2010-03-10  
我的也是读取服务器txt文本文件,经过字符转码在模拟器上字体显示正常,在真机上测试第一页为wml文件代码,第二页实现出来的文本文件为乱码,屏幕上的字体显示为是"?"。
12 楼 iwinyeah 2010-03-21  
你要确认你服务器上文件的编码格式,用正确的编码格式来读才可以的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: