J2ME - wykorzystanie klasy Connector

0

Witam!

Probuje napisac moj pierwszy program, ktory bedzie mial cos wspolnego z siecia. Sciagnalem z sieci kawalek ksiazki o tym, troche poczytalem i doszedlem do pierwszego przykladu, ktory oczywiscie nie chce dzialac. Przyklad mial sie laczyc z podana strona i zdaje sie, ze wypisywac jej tytul (naglowek?). Oto metoda, ktora to robi:

    private void getHttpMessage(){
        int c = 0;
        String dataIn = null;
        StringItem item = new StringItem("Reading from URL", "");
        outputForm.append(item);
        try {
//*****************************************************************************
            ContentConnection connection = (ContentConnection)
                Connector.open("http://www.catapult-technologies.com/ctimain.htm",Connector.READ);
//*****************************************************************************
            DataInputStream is = connection.openDataInputStream();
            try {
                System.out.println("encoding: "+ connection.getEncoding());
                System.out.println("length: "+ connection.getLength());
                System.out.println("type: "+ connection.getType());
                StringBuffer sb = new StringBuffer("");
                for (int ccnt=0; ccnt < connection.getLength(); ccnt++){
                    c = is.read();
                    sb.append((char)c);
                }
                dataIn = sb.toString();
                item = new StringItem("Title: ", getTitle(dataIn));
                outputForm.append(item);
            } finally {
                is.close();
            }
        } catch (IOException x) {
            System.out.println("Problems sending or receiving data.");
            x.printStackTrace();
        }
    }

Wszystko wiesza sie w linijce miedzy gwiazdkami. Po wklejeniu adresu strony w przegladarke wyswietla sie komunikat, ze nie mozna jej znalezc. Wiem, ze dlatego nie dziala. Ale nie mam pojecia, co tam wpisac, zeby dzialalo :-( W zyciu nie pisalem programu, ktory robilby cos przez siec.... Czy chodzi o jakakolwiek zwykla strone HTML??

Dodatkowo, kiedy uruchamiam ten program, na ekranie emulatora telefonu wyswietla sie zapytanie:

<nazwa mojego="mojego" projektu="projektu"> wants to send and receive data using the network. This will use airtime and may result in charges.
Is it OK to use airtime?

Po czym aktywuja sie oba przyciski funkcyjne "telefonu": nad jednym jest napisane 'Yes', nad drugim 'No'... moge sobie je wciskac i nic to nie daje - zarowno jeden jak i drugi.

Czy ktos moglby mi podac linka, z ktorym powyzszy kod zadziala?
A moze cos innego jest nie tak?

Pozdrawiam

0
Bman napisał(a)

Czy chodzi o jakakolwiek zwykla strone HTML??

Tak, możesz podać dowolną stronę.

Bman napisał(a)

Dodatkowo, kiedy uruchamiam ten program, na ekranie emulatora telefonu wyswietla sie zapytanie:

<nazwa mojego="mojego" projektu="projektu"> wants to send and receive data using the network. This will use airtime and may result in charges.
Is it OK to use airtime?

Chodzi o to, że emulator wykrywa, że aplikacja będzie pracowała przy włączonym połączeniu z internetem i pyta użytkownika czy on na to się zgadza. Jeśli wybierzesz no aplikacja nie będzie działać.

0

Probowalem wpisac adresy:

http://www.onet.pl/index.html
http://www.onet.pl
http://www.google.pl/index.html
http://www.google.pl

W kazdym przypadku aplikacja wiesza sie w tym samym momencie..

Nie pisalem o tym wczesniej, ale w oknie NetBeansa, po komunikacie o 'airtime', wyswietlane jest ostrzezenie:

Warning: To avoid potential deadlock, operations that may block, such as
networking, should be performed in a different thread than the
commandAction() handler.

Moze wieszanie sie tej aplikacji ma cos wspolnego z tym ostrzezeniem?

Pozdrawiam

0

Juz rozwiazalem ten problem - program dziala.

Chodzilo o to, zeby umiescic ta metode w oddzielnym watku.

BTW - ze stronami google i onet, programik sie wysypuje. Wyswietla sie blad:

java/lang/StringIndexOutOfBoundsException: String index out of range: -7.

Za to dziala tak, jak powinien ze stronka:

http://www.it.uc3m.es/celeste/docencia/j2me/docs/api/midp/

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1