Приложение j2me не работает на мобильном телефоне - PullRequest
2 голосов
/ 25 августа 2009

Я разработал одно простое приложение в J2ME. Приложение просто делает HttpConnection и делает только запрос. Вот код для этого:

 public void run() {
    System.out.println("Inside saveData");
    HttpConnection hc = null;
    OutputStream dout = null;
   try {
        System.out.println("custName = " + custName);
        System.out.println("prodName = " + prodName);
        System.out.println("qty = " + qty);

        hc = (HttpConnection) Connector.open("http://www.sufalamtech.com/demo/mobile/test.php?custName=" + custName + "&prodName=" + prodName + "&qty=" + qty);
        //hc = (HttpConnection) Connector.open("http://www.sufalamtech.com/demo/mobile/test.php?custName=Custtt51&prodName=Proddd52&qty=53");
        //hc = (HttpConnection) Connector.open("http://www.sufalamtech.com/demo/mobile/test.php?custName="+custName+"&prodName="+prodName+"&qty="+qty);

        hc.setRequestProperty("User-Agent", "Profile/MIDP-2.1 Configuration/CLDC-1.1");
        hc.setRequestMethod(HttpConnection.GET);
        dout = hc.openOutputStream();

    } catch (Exception e) {
        System.out.println("Error... = " + e);
    } finally {
        try {
            if (dout != null) {
                dout.close();
            }

            if (hc != null) {
                hc.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }

Это прекрасно работает в ПК (симулятор). Но когда я развертываю файл .jar на моем Nokia 5310, он ничего не возвращает из HttpConnection.

На самом деле я не хочу получать данные с URL. Я просто хочу отправить запрос на мой URL. Остальное будет сделано только по этому URL ... Мое приложение отлично работает в Nokia 3110 Classic. Но это не работает на Nokia 5310. У вас есть какие-либо предложения?

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Проблема в том, что в некоторых реализациях ваше приложение может даже не отправлять запрос, пока вы не вызовете метод connection.getResponseCode ().Попробуйте вызвать метод getResponseCode () перед открытием InputStream или OutputStream

1 голос
/ 25 августа 2009

Вам необходимо использовать входной поток соединения, а не выходной поток. Что-то вроде этого (не проверено).

    if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
        int length = (int)hc.getLength();
        InputStream is = hc.openInputStream();
        content = new byte[length];
        int read = 0;
        while (read < length) {
            int r = is.read(content, read, length - read);
            if (r < 0) {
                break;
            }
            read += r;
        }
        is.close();
    }
    hc.close(); 
0 голосов
/ 05 августа 2010

У меня та же проблема с Nokia E Series (E51), код прекрасно работает в Sun Simulator, однако попробуйте установить точку доступа приложения / MID-лета в диспетчере приложений, это может решить вашу проблему. Перейдите в Установки -> Приложение. Manager -> Открыть имя приложения, сменить место встречи -> Выбрать точку доступа для своего приложения

...