所以,我正在使用HTTPConnection类,如下所示:
HttpConnection c =
(HttpConnection)Connector.open("http://147.117.66.165:8000/eggs.3gp");
遵循LOOKS在Blackberry JDE API中执行操作的正确方法。
但是,如果我尝试使用变量'c'做任何事情,我的代码会崩溃。
.getType()
.getInputStream()
.getStatus()
所有导致它崩溃。
我可以,但是从中获取URL,我可以查看变量'c'本身,知道它确实已经创建了。
我是否设法创建了断开的连接?我是否需要做其他事情来实际处理连接?在这种情况下会发生这种情况(我知道链接很好,我可以使用黑莓的浏览器访问它)。
我刚才使用HttpConnection错了吗?我该如何正确地做事?
答案 0 :(得分:1)
HttpConnection
的API文档建议首先调用c.getResponseCode()
,然后尝试。
答案 1 :(得分:1)
崩溃时会抛出什么错误?您可能想尝试将“Connector.READ_WRITE”添加为打开调用的第二个参数 - 即使它只是像GET这样的“只读”连接,某些操作系统(例如4.6)将throw an exception除非您打开它在读/写模式下。
答案 2 :(得分:1)
我通过找到一些使用HttpConnection的示例代码找出了什么问题,(至少,我认为我做了,至少,我现在可以访问所有这些变量)。在此之前,我并没有将它作为“流连接”(我看到它从Connector连接到HTTPConnection的示例)。
StreamConnection s = null;
s = (StreamConnection)Connector.open("http://10.252.9.15/eggs.3gp");
HttpConnection c = (HttpConnection)s;
InputStream i = c.openInputStream();
System.out.println("~~~~~I have a connection?~~~~~~" + c);
System.out.println("~~~~~I have a URL?~~~~" + c.getURL());
System.out.println("~~~~~I have a type?~~~~" + c.getType());
System.out.println("~~~~~I have a status?~~~~~~" + c.getResponseCode());
System.out.println("~~~~~I have a stream?~~~~~~" + i);
player = Manager.createPlayer(i, c.getType());
即使现在已经成功创建了流,但我仍然遇到问题,但这可能是因为我的连接速度很慢。
答案 3 :(得分:-1)
您应该在我的博文“An HttpRequest and HttpResponse library for BB OS5+”
中找到您需要的所有内容要在您的应用程序中调用媒体,您可以进行浏览器调用或直接从应用程序进行。您可能最好像这样使用浏览器:
BrowserSession invokeHighQuality = Browser.getDefaultSession();
invokeHighQuality.displayPage("URL goes here");
或者你可以试试这个:
// CHAPI invocation
Invocation invoke = new Invocation(_data.getUrl(), null, BlackBerryContentHandler.ID_MEDIA_CONTENT_HANDLER, false,
null);
try {
Registry.getRegistry(YourAppClass.class.getName()).invoke(invoke);
} catch (Throwable t) {
}