黑莓JDE HTTPConnection问题

时间:2009-09-02 19:53:56

标签: http networking blackberry java-me

所以,我正在使用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错了吗?我该如何正确地做事?

4 个答案:

答案 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) {

            }