2008-03-25
j2me如何读取网上资源文件例如文本文件,图形文件
j2me如何读取网上资源文件例如文本文件,图形文件。
例如,读取www.kingdart.cn/jaccount/imobile.png 转换为Image
又例如:读取www.kingdart.cn/jaccount/readme.txt 转换为String
只在模拟器上成功我也会,要求是真机上成功!
搞了我二天了,读到的是一些xml的文本,根本不沾边!
例如,读取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
返回的是移动资费页面!
需要想办法将这个页面忽略掉
由于我返回的是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"....等内容
返回的内容是:
<?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字节的。
{
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();
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的文件头)而不是所要求的文件
发表评论
- 浏览: 13756 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
jaccount1.0.7
共 5 张
共 5 张
最近加入圈子
链接
最新评论
-
Java 初学者应对以下代码 ...
~呵呵,测试了下你的留言版,不太行哦!~~~
-- by ggweixudong -
Java 初学者应对以下代码 ...
[list=1] [*][list=1] [*][*][list=1] [*] ...
-- by ggweixudong -
能否考虑使用asp实现服务 ...
那就要研究一下asp了,不知道又要花我多长时间呢?干吧,管它呢!
-- by iwinyeah -
能否考虑使用asp实现服务 ...
当然是可以的。而且这些东西,用http协议搞下就OK了。很简单的。
-- by wuhua -
试翻译Openbasemovil-core ...
很不错哦,值得期待。
-- by LinuxFans






评论排行榜