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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка url на правильность 
:(
    Опции темы
tipoc
Дата 31.5.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как полностью проверить URL на корректность, есть ли для этого какие-нить дополнительные либы, а то в классе java.net.URL есть только методы для получения отдельных частей url? smile Не хочется вручную все проверять самому smile 
PM ICQ   Вверх
val
Дата 31.5.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


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

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



Можно так:
Код

try {
    InetAddress add = InetAddress.getByName("your IP");
   // Правильный АйПи. 
} catch(Exception e) {
  // Неправильный АйПи. 
}
 


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
LSD
Дата 31.5.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(tipoc @  31.5.2006,  18:24 Найти цитируемый пост)
Как полностью проверить URL на корректность, есть ли для этого какие-нить дополнительные либы, а то в классе java.net.URL есть только методы для получения отдельных частей url?

Так java.net.URL и осуществляет проверку на синтаксическую корректность.
Семантическую корректность может проверить только провайдер данного протокола. 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tipoc
Дата 1.6.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(val @ 31.5.2006,  19:01)
Можно так:
Код

try {
    InetAddress add = InetAddress.getByName("your IP");
   // Правильный АйПи. 
} catch(Exception e) {
  // Неправильный АйПи. 
}

Так он проверяет только хост, а url состоит из куда большего количества частей smile  
PM ICQ   Вверх
tipoc
Дата 1.6.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(LSD @ 31.5.2006,  22:19)
Цитата(tipoc @  31.5.2006,  18:24 Найти цитируемый пост)
Как полностью проверить URL на корректность, есть ли для этого какие-нить дополнительные либы, а то в классе java.net.URL есть только методы для получения отдельных частей url?

Так java.net.URL и осуществляет проверку на синтаксическую корректность.
Семантическую корректность может проверить только провайдер данного протокола.

а вот отсюда поподробнее, что-то я не до конца понимаю, что ты имеешь ввиду под семантической корректностью. Я вот хочу провести проверку на наличие обязательных частей в URL'е и правильность их задания согласно RFC 2396 RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax 
PM ICQ   Вверх
tipoc
Дата 1.6.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



короче, нужен паттерн для проверки URL на корректность smile)) 
PM ICQ   Вверх
LSD
Дата 3.6.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(tipoc @  1.6.2006,  12:50 Найти цитируемый пост)
а вот отсюда поподробнее, что-то я не до конца понимаю, что ты имеешь ввиду под семантической корректностью. Я вот хочу провести проверку на наличие обязательных частей в URL'е и правильность их задания согласно RFC 2396 RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax

Он осущесвляет такую проверку, но для довольно узкого количества протоколов. Вернее для тех протоколов, для которых у него есть URLStreamHandler.

По поводу регулярного выражения посмотри тут, там конечно оно не полное, но есть с чего начать. 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tipoc
Дата 5.6.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



меня интересуют только http-ссылки (точнее wap, но они идентичны)
такое ощущение, что при создании объекта URL проверяется только наличие протокола (http), а проверки остальных частей не выполняются. Может можно как-то изменить это поведение? smile  
PM ICQ   Вверх
_Y_
Дата 5.9.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Не стал создавать отдельную тему, т.к. мой вопрос, видимо, почти совпадает с этой веткой.

Хочу, чтобы программа делала валидацию интернет ссылки. Типа того, что делает в онлайне этот сайт
http://www.webyield.net/link_checker.html, но на локальном компьютере. Т.е. нужно вызывать какой-то URL и распознавать есть ли запрошенная страница в сети и не сделал ли сервер перенаправление по ошибке 404.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
LSD
Дата 15.9.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



_Y_, на самом деле у тебя совсем другая задача smile

Твоя проблема решается очень просто: берешь HttpClient и пишешь:
Код

HttpClient httpClient = new HttpClient();
GetMethod get = new GetMethod("a_url");
try
{
  int result = httpClient.executeMethod(get);
  switch(result)
  {
    case HttpStatus.SC_OK:
      ...
      break;

    case HttpStatus.SC_NOT_FOUND:
      ...
      break;
    
      ...

    default:
      ...
      break;
  }
}
catch(IOException e)
{
  ...
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

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


 




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


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

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