诺基亚 c1-01 中的 J2ME-App 无法连接到互联网

Posted

技术标签:

【中文标题】诺基亚 c1-01 中的 J2ME-App 无法连接到互联网【英文标题】:J2ME-App not connecting with internet in Nokia c1-01 【发布时间】:2012-10-18 05:46:26 【问题描述】:

我制作了一个需要互联网连接的应用程序,以便我可以在我的应用程序中显示一些数据。

但是当我在诺基亚 c1-01 中测试我的那个应用程序时,它无法从我的服务器获取数据,同时如果我在任何其他设备上检查我的应用程序,它们很容易连接到互联网,我可以看到我的应用程序.

这是我的代码:

    HttpConnection httpConn = null;

    InputStream is = null;
    OutputStream os = null;
    StringBuffer sb = new StringBuffer();

    try 
        // Open an HTTP Connection object
        httpConn = (HttpConnection) Connector.open(url);
        // Setup HTTP Request to POST
        httpConn.setRequestMethod(HttpConnection.POST);

        httpConn.setRequestProperty("User-Agent",
                "Profile/MIDP-2.0 Confirguration/CLDC-1.1");
        httpConn.setRequestProperty("Accept_Language", "en-US");
        //Content-Type is must to pass parameters in POST Request
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        os = httpConn.openOutputStream();



        os.write(params.getBytes());

        /**Caution: os.flush() is controversial. It may create unexpected behavior
        on certain mobile devices. Try it out for your mobile device **/
        //os.flush();
        // Read Response from the Server
        //StringBuffer sb = new StringBuffer();
        is = httpConn.openDataInputStream();
        int chr;
        while ((chr = is.read()) != -1) 
            sb.append((char) chr);
        
     finally 
        if (is != null) 
            is.close();
        
        if (os != null) 
            os.close();
        
        if (httpConn != null) 
            httpConn.close();
        
    

我必须对我的代码进行哪些更改才能在我的诺基亚 C1-01 上运行?

【问题讨论】:

【参考方案1】:

我想到了两件事。

第一个是微不足道的,与手机上的互联网设置有关。我不具体了解诺基亚 C1,但我知道许多设备都有设备的 Internet 设置 + Java 的另一个 Internet 设置。确保 Java 的 Internet 设置正确。仅仅因为您可以在手机上使用浏览器,并不意味着 Internet 连接适用于 Java MIDlet。

您可以研究的第二件事与 Content-Type 属性有关。

我在开发一款通过服务器上的 php 检索并发送高分到我的网络服务器的游戏时遇到了这个问题。我发现它在我们的大多数测试手机上都可以正常工作,而其中一些有问题,这很奇怪。

输出手机收到的数据显示 404 回复(或类似的东西,已经有一段时间了)。

在咨询了另一位 JavaME 开发人员后,我了解到:

一些设备向网络服务器发送特定指令:“你好。请给我一些来自 data.php 的 text/plain 类型的数据”。 如果 data.php 包含标题('Content-type: text/plain'),那么一切都很好。如果不是,那么服务器会回复:“对不起,伙计,我在那个地址没有任何文本/简单的东西”。

这只发生在某些设备上,因为只有某些设备会发送特定的请求。

因此,您在 JavaME 部分的 setRequestProperty() 中定义的任何 Content-Type 都必须在服务器端脚本中相同。

希望这两件事中的一件有所帮助。 :-)

【讨论】:

非常感谢您的回答。但是我使用下面显示的代码通过 php 从服务器获取数据: 那么你能告诉我我必须在我的 php 页面中添加什么吗?。

以上是关于诺基亚 c1-01 中的 J2ME-App 无法连接到互联网的主要内容,如果未能解决你的问题,请参考以下文章

在诺基亚手机上部署 midlet

诺基亚6300手机如何格机,诺基亚手机反复重启,无法开机怎么办

无法使用诺基亚手机拍摄图像,但在计算机应用程序中工作正常?

J2ME“notifyDestroyed()”在诺基亚 501 上无法正常工作

如何在诺基亚 Asha 的 J2ME 中将对象转换为字符串?

更改诺基亚 500 上的应用程序权限