Как правильно использовать HttpConnection в j2me?
От: Olga____  
Дата: 16.05.05 18:47
Оценка:
Нужна была функция, передающая в сеть параметры в виде строки и принимающая строку с другими параметрами.
Есть функция, честно списанная из хелпа. Она работает ... реже, чем хотелось бы (начальству). Примерно 9 раз из 10 эта функция возвращает "". Есть какая-то другая программа, которая тоже работает с GPRS и она работает всегда. Т.е. наверное это сделать как нибудь можно...
Вы не знаете, как сделать, чтобы это работало хотя бы через раз?
Спасибо.

    static String GetString(String url) {
        String res = "";
        try {
            HttpConnection c = null;
            InputStream is = null;
            int rc;
            try {
                c = (HttpConnection)Connector.open(url);
                rc = c.getResponseCode();
                if (rc != HttpConnection.HTTP_OK) {
                    throw new IOException("HTTP response code: " + rc);
                }
                is = c.openInputStream();
                String type = c.getType();
                int len = (int)c.getLength();
                int ch;
                String str = "";
                while ((ch = is.read()) != -1) {
                    str += (char)ch;
                }
                res = str;       
            } 
            catch (ClassCastException e) {
                throw new IllegalArgumentException("Not an HTTP URL");
               
            } 
            finally {
                if (is != null)
                    is.close();
                if (c != null)
                    c.close();
            }
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return res;
    }
Re: Как правильно использовать HttpConnection в j2me?
От: iZEN СССР  
Дата: 16.05.05 20:57
Оценка:
Здравствуйте, Olga____, Вы писали:

O__>Есть функция, честно списанная из хелпа. Она работает ... реже, чем хотелось бы (начальству).

...
O__>Вы не знаете, как сделать, чтобы это работало хотя бы через раз?
O__>Спасибо.

O__>
//...skiped                String type = c.getType();
//...skiped


Если type нигде не анализируется и нигде не используется, то не удивительно, что метод "работает через раз".
Re[2]: Как правильно использовать HttpConnection в j2me?
От: Olga____  
Дата: 17.05.05 05:44
Оценка:
Здравствуйте, iZEN, Вы писали:

ZEN>Здравствуйте, Olga____, Вы писали:


O__>>Есть функция, честно списанная из хелпа. Она работает ... реже, чем хотелось бы (начальству).

ZEN>...
O__>>Вы не знаете, как сделать, чтобы это работало хотя бы через раз?
O__>>Спасибо.

O__>>
//...skiped                String type = c.getType();
ZEN>//...skiped


ZEN>Если type нигде не анализируется и нигде не используется, то не удивительно, что метод "работает через раз".


В эмуляторе это строка "text/html". Как это можно использовать?
Метод работает, к сожалению, реже чем через раз. Примерно каждый десятый раз.
Спасибо.
Re: Как правильно использовать HttpConnection в j2me?
От: sugarde  
Дата: 17.05.05 08:24
Оценка:
Привет, Оля!

Что значит не работает? Какие выбросы, каких исключений? На чём? Что в эмуляторе в HTTP-мониторе?
На вскидку: возможно идут данные без CONTENT_LENGTH но с Connection: Close или наоборот с Keep-Alive, но без Length. Или строка длинная и она чанкуется.

Сообщи более точную информацию, а то "каждый десятый" малоинформативно.

ЗЫ Ты, часом, не Нагула?
В жизни кaждoгo челoвекa бывaют приятные мoменты, кoгдa oн чувствует себя пoлным идиoтoм. Приятнoсть этих мoментoв в пoстижении истины.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.