Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GET 
:(
    Опции темы
WGR
  Дата 21.8.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



как сделать минимальное приложение на j2me 
для для передачи переменной скрипту методом GET

желательно максимально минимальное (ничего лишнего для экономии трафика)
--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
WGR
Дата 21.8.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



Я недавно в j2me и вот что могу сделать пока
а дальше подскажите.....

Код

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class WGR extends MIDlet implements CommandListener {
    private Display display;
    private Command exitCommand= new Command("Выход", Command.EXIT, 1);
    private Command z= new Command("Запрос", Command.SCREEN, 2);
    private Form myform = new Form("Это форма");
    
    public WGR() {
        display = Display.getDisplay(this);
    }

    public void startApp() {
        myform.addCommand(exitCommand);
        myform.addCommand(z);
        myform.setCommandListener(this);
        display.setCurrent(myform);      
    }

    public void commandAction(Command c, Displayable s) {        
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }    
        if (c == z) {
        //запрос 
        }    
    }      
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
    
}


--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
Frog
Дата 22.8.2006, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 11.3.2006
Где: The swamp

Репутация: нет
Всего: нет




А дальше так - вот самый простой  код , не я его создал - но я его опробовал - работает.

Код


  public void commandAction(Command c, Displayable s) {

    // when user clicks on the "send" button on mainScreen
    if (c == sendCommand) {                                                                // change to Your "z" :)

      // retrieve the Web url that user entered
      String urlstring = requestField.getString();

      // send a GET request to Web server
      String resultstring = "";
      try {
        resultstring = sendGetRequest(urlstring);
      } catch (IOException e) {
        resultstring = "ERROR";
      }

      // display the page content retrieved from Web server
      resultScreen = new Form("GET Result:");
      resultField =
      new StringItem(null, resultstring);
      resultScreen.append(resultField);
      resultScreen.addCommand(backCommand);
      resultScreen.setCommandListener(this);
      myDisplay.setCurrent(resultScreen);

    } else if (c == backCommand) {

      // do it all over again
      requestField.setString(defaultURL);
      myDisplay.setCurrent(mainScreen);
    }
  }

  // send a GET request to Web server
  public String sendGetRequest(String urlstring) throws IOException {

    HttpConnection hc = null;
    DataInputStream dis = null;

    String message = "";
    try {

      // open up an HttpConnection with the Web server
      // the default request method is GET.
      hc = (HttpConnection) Connector.open(urlstring);
      hc.setRequestMethod(HttpConnection.GET);

      //System.out.println(HttpConnection.POST);
     // no-store, no-cache, must-revalidate
      // obtain a DataInputStream from the HttpConnection
      dis = new DataInputStream(hc.openInputStream());

      // retrieve the contents of the requested page from Web server
      int ch;
      while ((ch = dis.read()) != -1) {
        message = message + (char) ch;
      }
    } finally {
      if (hc != null) hc.close();
      if (dis != null) dis.close();
    }
    return message;
  }



PM MAIL WWW   Вверх
WGR
Дата 23.8.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



Изрядно попател чтобы втюрить его и свой код
вот тока WTK23 Зависает при запросе

что это 
почему?????????7

полный код вот 
Код

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
//import javax.microedition.io.HttpConnection;
//import javax.microedition.io.Connector;
import java.io.DataInputStream;


public class WGR extends MIDlet implements CommandListener {
    private Display display;
    private Command exitCommand= new Command("Выход", Command.EXIT, 1);
    private Command z= new Command("Запрос", Command.SCREEN, 2);
    private Command backCommand= new Command("Назад", Command.SCREEN, 2);
    private Form myform = new Form("Это форма");
    private Form resultScreen = new Form("GET Result:");
    private TextField requestField = new TextField("Адресс", "http://www.xxx.ru/xxx.php?k=s&t=123",100,TextField.URL);
    private StringItem resultField;
    

    public WGR() {
        display = Display.getDisplay(this);
    }

    public void startApp() {
        myform.append(requestField);
        myform.addCommand(exitCommand);
        myform.addCommand(z);
        myform.setCommandListener(this);
        display.setCurrent(myform);      
    }

    public void commandAction(Command c, Displayable s) {        
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }    
        

        //запрос 
       if (c == z) {           
      String urlstring = requestField.getString();
      String resultstring = "";
      try {
        resultstring = sendGetRequest(urlstring);
      } catch (java.io.IOException e) {
        resultstring = "ERROR";
      }
      resultField =new StringItem(null, resultstring);
      resultScreen.append(resultField);
      resultScreen.addCommand(backCommand);
      resultScreen.setCommandListener(this);
      display.setCurrent(resultScreen);

    } else if (c == backCommand) {
      requestField.setString("http://www.xxx.ru/xxx.php?k=s&t=123");
      display.setCurrent(myform);
    }
  }


public String sendGetRequest(String urlstring) throws java.io.IOException {
    HttpConnection hc = null;
    DataInputStream dis = null;

    String message = "";
    try {
      hc = (HttpConnection) Connector.open(urlstring);
      hc.setRequestMethod(HttpConnection.GET);
      dis = new DataInputStream(hc.openInputStream());
      int ch;
      while ((ch = dis.read()) != -1) {
        message = message + (char) ch;
      }
    } finally {
      if (hc != null) hc.close();
      if (dis != null) dis.close();
      }
    return message;
}    
         
   
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
    
}


Добавлено @ 12:56 
WTK23  ВЫдаёт
Warning: To avoid potential deadlock, operations that may block, such as 
 networking, should be performed in a different thread than the 
 commandAction() handler.

Предупреждение: Чтобы избегать потенциального тупика, операции, которые могут блокировать, типа организации сети, должны быть выполнены в различной нити чем commandAction () тренер.

--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
Dancer
Дата 23.8.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Ну, всё правильно он тебе и говорит smile))

здесь читай, должно будет хоть что-то прояснить 
http://www.mobilab.ru/articles/15/


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
WGR
Дата 23.8.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



Dancer, взал код отсюда
http://www.mobilab.ru/articles/15/ 
тоже самое вылазит (не че не менял взял как есть)
У меня в WTK ни один пример с http не запускается

Добавлено @ 15:05 
вот что пишет -вчём лажа то?????????????

java.lang.InstantiationException: Class not a MIDlet

    at com.sun.midp.midlet.MIDletState.createMIDlet(+51)

    at com.sun.midp.midlet.Selector.run(+22)

--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
Frog
Дата 23.8.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 11.3.2006
Где: The swamp

Репутация: нет
Всего: нет



Код испытывался "на живую" - на Нокии 6100 и Мотороле RAZR он работает - на Samsung Е600 - нет (причины неизвестны).
На эмуляторе Нокиа серия 40 версия 1 (7210) - работает нормально.  
Cоединение происходило с php-скриптом на сервере.  На  запрос мидлета получал соответствующий ответ из скрипта на серваке.
PM MAIL WWW   Вверх
WGR
Дата 23.8.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



Блин не на wtk 
ни на NHAL

ни на 7210 не прёт 
кто скаже чё таке?


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Clip2.jpg 51,85 Kb
--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
WGR
Дата 23.8.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



Что не раз такого ни у каго не было в wtk?

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Clip_22.jpg 42,51 Kb
--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
javastic
Дата 24.8.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Он же тебе пишет, что класс не является мидлетом. =) Запость код, будет ясно.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
WGR
Дата 24.8.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 6.6.2006
Где: Россия

Репутация: нет
Всего: нет



это у меня на всех примерах (http) из WTK23 и WTK21 вылазит
включая код с этой страници 
http://www.mobilab.ru/articles/15/

вчём бида не знаю 

ни одно сетевое приложение (стандартные из wtk) не запускается 

но опера.jad и jimm.jad на эмуляторах пашут  
я вот думаю мощ ПО глючит или ОС

у меня стоят пакеты
jSE v 1.4.2_01
jSE v 1.4.2_09
J2ME WTK 21 
J2ME WTK 23 

мош кто скажет ресурс по j2me побоьше чем на vingrade 
--------------------
Flash ICQ Chuch@"... да как два байта отослать!!!"
PM   Вверх
Dancer
Дата 24.8.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



горемычный ты наш smile), у тебя прокси какое-нить стоит или нет? (если стоит, не забудь это дело указать в настройках WTK. )
WTK->Edit->Preferences:
  1.1.Network Configuration (здесь делаешь настроки своего прокси, и не забудь поставить HTTP/1.0)
1.2. Security (в этой вкладке установи, что у тебя приложение trusted -> Security domain: trusted)
2. Открывай своё приложение в WTK, заходи в настройки приложения (Settings)
3. Выбирай вкладку Permissions. Добавляй в MIDlet-Permissions: javax.microedition.io.Connector.http

Далее пробуй пускать своё приложение (пусть это будет какое нибудь лучше из примеров WTK для начала, не забудь проверить Settings)

Да, и нахрена тебе JSE 1.4.2_01 и 09?

снеси Java (все пакеты) и поставь один единственный что нить из последнего лучше (1.4.2_12 например, только 1.5 не ставь, хотя именно он кажется нужен для WTK 23, точно не помню. У меня у самого 1.4.2_12 с WTK22) проблем никогда таких не возникало ......



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1134 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.