Java me 在诺基亚c1-01中,J2ME应用程序未连接到互联网

Java me 在诺基亚c1-01中,J2ME应用程序未连接到互联网,java-me,nokia,midp,Java Me,Nokia,Midp,我制作了一个需要连接互联网的应用程序,这样我就可以在我的应用程序中显示一些数据 但当我在诺基亚c1-01上测试我的应用程序时,它无法从我的服务器获取数据,同时,如果我在任何其他设备上检查我的应用程序,它们可以轻松连接到互联网,我可以看到我的应用程序 这是我的密码: HttpConnection httpConn = null; InputStream is = null; OutputStream os = null; StringBuffer sb = new

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

但当我在诺基亚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上运行,我必须对代码进行哪些更改?

我想到了两件事

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

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

我在开发一款游戏时遇到了这个问题,该游戏通过服务器上的PHP检索并向我的Web服务器发送高分。我发现它在我们的大多数测试手机上都能正常工作,而有些手机出现了问题,这相当奇怪

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

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

一些设备向Web服务器发送特定指令:“您好,请从data.php中给我一些text/plain类型的数据”。 如果data.php包含标题('Content-type:text/plain'),则一切正常。如果没有,服务器会回答:“对不起,伙计,我在那个地址没有任何文本/普通的东西。”

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

因此,在JavaME部分的setRequestProperty()中定义的任何内容类型在服务器端脚本中都必须相同


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

非常感谢您的回答。但我使用了下面所示的代码通过php从服务器获取数据: