Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > HttpConnection и корявый адрес сайта


Автор: MadSergei 27.3.2011, 14:33
Всем доброго времени суток.
Отлаживал клиент-приложение на локалхосте - всё работает на ура.
Обрадовавшись,что всё наконец заработало,решил начать отправлять запросы на свой сайт.И тут-то получилась пичалька.

Стабильно выпадает с ошибкой:
Цитата

TRACE: <at java.lang.IllegalArgumentException: invalid IPv4 format>, Exception caught in Display class
java.lang.IllegalArgumentException: invalid IPv4 format


день мучений и корень зла выявлен.
Как оказалось,дело в том,что адрес сайта начинается с цифр.

7921.(хост).net

собсно ошибка выскакивает уже на Connector.open , и дальше работа прекращается,
но если перед адресом написать любую букву,то всё в порядке.

Подскажите,как обойти это дело.
Смена хоста - не вариант, там хранится БД,которая обновляется другими людьми.

Заранее всем спасибо за посильную помощь.

Автор: MadSergei 28.3.2011, 19:22
Неужели никто не знает? =(

Автор: ivanovpv 29.3.2011, 07:41
Как вариант: захости другой сайт, который начинается с буквы и поставь там редирект на свой сайт

Добавлено через 8 минут и 35 секунд
А по другому и не обойдешь:

Код

The Internet standards (Request for Comments) for protocols mandate that component hostname labels may contain only the ASCII letters 'a' through 'z' 
(in a case-insensitive manner), the digits '0' through '9', and the hyphen ('-'). [color=red]The original specification of hostnames in RFC 952, mandated 
that labels could not start with a digit or with a hyphen, and must not end with a hyphen.[/color] However, a subsequent specification (RFC 1123) 
permitted hostname labels to start with digits. No other symbols, punctuation characters, or white space are permitted.


То есть говоря по русски: RFC-952 запрещает использование имен хостов начинающихся с цифры, правда потом вышел RFC-1123, который разрешил. Тем не менее очевидно, что в библиотеке реализован RFC-952 - так что либо найти другую либу (что маловероятно), либо как я написал.

Добавлено через 10 минут и 44 секунды
Ну или забей напрямую айпишник сайта 

Автор: oxigen 29.3.2011, 10:58
А может по IP адресу к нему обращаться?

Автор: MadSergei 29.3.2011, 17:48
по IP не вариант
хостинг бесплатный пока что, у сайта адрес общего сервера,как я понял (в любом случае,на сайт попасть по ip не получилось)

ладно,повременю пока что,всё равно в будущем планировал на платный хост переезжать,там и проблем не будет.

интересно только вот что,как тогда действуют мобильные браузеры? получается у них свой протокол?

Автор: ivanovpv 30.3.2011, 08:33
В качестве варианта можно поднять на поддомене сервера небольшой веб серверочек который будет переадресовывать запросы на 7921.(хост).net


Автор: MadSergei 30.3.2011, 22:39
не будь он бесплатным...можно было бы smile 
в данном случае даже создание поддоменов недоступно(

Автор: kkorsakoff 31.3.2011, 13:05
Почему по IP не вариант. Очень даже вариант.
Только надо общаться на уровне сокетов, то есть самому мини http клиент написать.
Если потребность просто запросить страницу и/или послать порцию данных в POST, то весьма несложно.

Connector.open("socket://ip:port")

В заголовке Host выставишь доменное имя.


Автор: MadSergei 1.4.2011, 00:43
kkorsakoff, о,спасибо
теперь не вылетает из-за адреса,это уже прогресс
сокетов я не боюсь,опыт есть,правда не в j2me,но думаю разберусь

эм,единственное,что ошибка теперь другая

Цитата

TRACE: <at java.lang.SecurityException: Target port denied to untrusted applications>


как тогда сделать приложение доверенным?

Автор: MadSergei 1.4.2011, 00:59
порт 80 использую

думал не в эмуляторе,так на телефоне заработает...хренушки  smile 

Автор: MadSergei 2.4.2011, 17:59
Всем спасибо за помощь,полностью разобрался,запросы дошли,ответ получил. полёт нормальный)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)