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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SE HttpConnection ConnectionNotFoundException 
V
    Опции темы
kanemara
Дата 23.12.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.10.2006
Где: Ukraine.Dnepropet rovsk

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



Телефон Sony Ericsson K750, мидлет должен просто открыть HttpConnection и забрать картинку, но вместо этого выпадает ConnectionNotFoundException.
Пробовал разные урлы, пробовал даже протсто коннектиться на урл с html и читать ее, результат тот же.
На эмуляторе все отлично, на Nokia e51 тоже.
Инет настроен правильно, сокетное соединение работает нормально. Пробовал даже на разных операторах.
Может кто сталкивался с чем-то подобным? Зарание благодарен.

Код

public void requestImage(final String path, ImageReceivedListener listener) {
        imageReceivedListener = listener;
        final StringBuffer b = new StringBuffer();
        new Thread() {
            public void run() {
                try {                    
                    connection = (HttpConnection) Connector.open("http://iwatcher.net/shot/751ddeee16286ea33cf1a30e10c80e0b/a4cc9bb02ccf4b07ce181fc08d3a3a60-320x600.png");
                    connection.setRequestMethod(HttpConnection.GET);
                    connection.setRequestProperty("Accept", "image/png");
                    connection.setRequestProperty("Connection", "close");
                   
                    if (connection.getResponseCode() == HttpConnection.HTTP_OK) {
                        is = connection.openInputStream();
                        
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        int c;
                        while ((c = is.read()) != -1) {
                            baos.write(c);
                        }
                        baos.close();
                        res = baos.toByteArray();
                       
                    }

                } catch (IOException e) {
                 
                    String s = e.toString();
                    b.append(s.substring(s.length() / 2).toLowerCase());

                } finally {
                    if (is != null) {
                        try {
                            is.close();
                        } catch (IOException e) {
                            //do nothing
                        }
                    }
                    if (connection != null) {
                        try {
                            connection.close();
                        } catch (IOException e) {
                            //do nothing
                        }
                    }
                    if (imageReceivedListener != null) {
                        imageReceivedListener.imageReceived(res, b.toString());
                    }
                }
            }
        }.start();
    }


PM ICQ   Вверх
W0LF
Дата 23.12.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



а попробуй убрать вот эти вот проперти - 
Код

                    connection.setRequestProperty("Accept", "image/png");
                    connection.setRequestProperty("Connection", "close");



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
kanemara
Дата 24.12.2009, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.10.2006
Где: Ukraine.Dnepropet rovsk

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



Уже пробовал. Не помогло. Пробовал на другом таком же телефоне - тот же результат.
PM ICQ   Вверх
ivanovpv
Дата 24.12.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Нельзя так читать - ожидая в конце буфера -1. Надо запрашивать размер буфера:
Код

long len = 0 ;
int ch = 0;
c = (HttpConnection)Connector.open(url);
is = c.openInputStream();
len =c.getLength();
if( len != -1) {
    // читаем заданную длину буфера
    for(int i =0 ; i < len ; i++ )
      if((ch = is.read()) != -1) {
          b.append((char) ch);
       }
}


Если сервер возвращает длину буфера, то -1 в конце буфера может никогда и не появиться.

Это сообщение отредактировал(а) ivanovpv - 24.12.2009, 08:45


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
W0LF
Дата 24.12.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



а я 3 года читал из http без len и нигде проблем не было =)


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
kanemara
Дата 24.12.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.10.2006
Где: Ukraine.Dnepropet rovsk

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



 В общем проблема решена.
В коде ошибок нет, он нормально работает.
Перезаказал настройки у оператора, http заработал, а сокеты перестали. Так как нужно чтобы приложение могло открыть оба вида соединения, то пришлось экспериментировать с настройками... но в конце концов результат получен))
Всем спасибо за участие.

Это сообщение отредактировал(а) kanemara - 24.12.2009, 17:46
PM ICQ   Вверх
ivanovpv
Дата 25.12.2009, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(W0LF @  24.12.2009,  14:46 Найти цитируемый пост)
а я 3 года читал из http без len и нигде проблем не было =)

Ну а что мешает прочитать len - лень? smile - хуже точно не будет. По крайней мере в мануале девелоперов сонерика настоятельно рекомендуется читать len!



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
W0LF
Дата 25.12.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



 smile 
Цитата(ivanovpv @  25.12.2009,  08:40 Найти цитируемый пост)
лень? smile

хороший программист - ленивый программист =)


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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