Blackberry 使用ConnectionFactory并从url检索数据
我从Blackberry的一篇文章中获得了上述代码,但我不完全确定如何获得url内容的原始字符串,在我的例子中,这将是一个json字符串 我知道当我不使用ConnectionFactory时,我使用了inputstream来获取数据,但我不知道它是否与较新的api相同Blackberry 使用ConnectionFactory并从url检索数据,blackberry,Blackberry,我从Blackberry的一篇文章中获得了上述代码,但我不完全确定如何获得url内容的原始字符串,在我的例子中,这将是一个json字符串 我知道当我不使用ConnectionFactory时,我使用了inputstream来获取数据,但我不知道它是否与较新的api相同 谢谢我相信您希望做的是: public class ConsumeFactoryThread extends Thread { private String url; public ConsumeFactoryT
谢谢我相信您希望做的是:
public class ConsumeFactoryThread extends Thread {
private String url;
public ConsumeFactoryThread(String url){
this.url = url;
}
public void run(){
ConnectionFactory connFact = new ConnectionFactory();
ConnectionDescriptor connDesc;
connDesc = connFact.getConnection(url);
if(connDesc != null)
{
HttpConnection httpConn;
httpConn = (HttpConnection) connDesc.getConnection();
try
{
final int iResponseCode = httpConn.getResponseCode();
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
//data retrieved
}
});
}
catch(IOException e)
{
System.err.println("Caught IOException: " + e.getMessage());
}
}
}
}
这将获取HttpConnection对象收集的输入流,使用RIM IOUtils类将其很好地放入数组中,然后最终从数据创建一个字符串。从他们的角度来看,应该可以使用RIM在SDK中包含的JSON库来处理JSON
注意:不确定是否需要强制转换,顺便说一句,这是未测试的代码
您还应该注意,有3种不同的API可用于在BlackBerry上创建网络连接
使用通用连接框架
最古老的方法(下面的OS5)是一个基本的J2ME实现,在URL末尾附加了额外的传输描述符。它使用J2ME GCF。本文给出了一个很好的解释,描述了如何始终可靠地打开HTTPConnection
使用网络API
在OS5及以上版本中引入。这是您当前使用的方法。它通过使用ConnectionFactory和ConnectionDescriptor类来包装添加到GCF中URL末尾的描述符字符串
使用通信API
介绍到及以上。这是最新的可能方法,它是网络API上更高的抽象。这些API对实际数据是如何收集的进行了抽象,尽量不让协议的细节打扰您。这个API的有用之处在于,您只需获取结果数据,而不必担心实现细节
您应该注意,在使用JSON时,它甚至会围绕转换结果数据的细节,并将其转换为您想要的格式。下面显示了一个示例。我相信您希望做的是:
public class ConsumeFactoryThread extends Thread {
private String url;
public ConsumeFactoryThread(String url){
this.url = url;
}
public void run(){
ConnectionFactory connFact = new ConnectionFactory();
ConnectionDescriptor connDesc;
connDesc = connFact.getConnection(url);
if(connDesc != null)
{
HttpConnection httpConn;
httpConn = (HttpConnection) connDesc.getConnection();
try
{
final int iResponseCode = httpConn.getResponseCode();
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
//data retrieved
}
});
}
catch(IOException e)
{
System.err.println("Caught IOException: " + e.getMessage());
}
}
}
}
这将获取HttpConnection对象收集的输入流,使用RIM IOUtils类将其很好地放入数组中,然后最终从数据创建一个字符串。从他们的角度来看,应该可以使用RIM在SDK中包含的JSON库来处理JSON
注意:不确定是否需要强制转换,顺便说一句,这是未测试的代码
您还应该注意,有3种不同的API可用于在BlackBerry上创建网络连接
使用通用连接框架
最古老的方法(下面的OS5)是一个基本的J2ME实现,在URL末尾附加了额外的传输描述符。它使用J2ME GCF。本文给出了一个很好的解释,描述了如何始终可靠地打开HTTPConnection
使用网络API
在OS5及以上版本中引入。这是您当前使用的方法。它通过使用ConnectionFactory和ConnectionDescriptor类来包装添加到GCF中URL末尾的描述符字符串
使用通信API
介绍到及以上。这是最新的可能方法,它是网络API上更高的抽象。这些API对实际数据是如何收集的进行了抽象,尽量不让协议的细节打扰您。这个API的有用之处在于,您只需获取结果数据,而不必担心实现细节
您应该注意,在使用JSON时,它甚至会围绕转换结果数据的细节,并将其转换为您想要的格式。给出了一个例子