Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
1

Создание URI из доменного имени без выбрасывания Exception

29.11.2018, 18:54. Показов 639. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Делаю такое: URI.create(uri)
У себя там в кишках кидает URISyntaxException: Malformed IPv4 adress
Как можно это побороть? За 10 минут намолотило 600тыс Exception - плохо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 18:54
Ответы с готовыми решениями:

Бесплатный хостинг без доменного имени
Люди подскажите пожалуйста ссылку на бесплатный хостинг без доменного имени, или хостинг чтобы...

Настройка HTTPS на сервере без доменного имени
Всем привет! Проблема следующая: Необходимо на IIS включить HTTPS. Сервер доступен только по IP....

Смена доменного имени
Всем привет, У заказчика есть корпоративный сайт, неплохо продвинутый возрастной домен, заказчик...

Перерегистрация доменного имени
Здравствуйте. Собираемся менять хостинг. Доменное имя - надо сохранить. Но получается, что это...

10
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
29.11.2018, 19:24 2
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Как можно это побороть?
Передавать корректные uri в create.
1
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
30.11.2018, 12:41  [ТС] 3
korvin_, он корректный. И URI создаётся. Он кидает в своих кишках это и сам это ловит и обрабатывает. Но производительность JVM от этого страдает.
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
30.11.2018, 13:09 4
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Он кидает в своих кишках это и сам это ловит и обрабатывает.
значит очевидно надо узнать причину по которой кидает и устранить её.
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
30.11.2018, 14:13 5
zuxa-zuxa, а у вас часом хост не начинается с цифр?
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
30.11.2018, 15:29 6
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
он корректный. И URI создаётся. Он кидает в своих кишках это и сам это ловит и обрабатывает. Но производительность JVM от этого страдает.
А если использовать URL, а не URI? И приведи пример какого-нибудь URI, который ты передаёшь.
0
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
01.12.2018, 16:48  [ТС] 7
HighPredator, да, те что с цифр - те бросают это исключение. А как то можно создать URI не кидая его?
Делаю всё для:
Java
1
2
import org.apache.http.client.methods.HttpPost;
HttpPost httpPost = new HttpPost(uri);
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
02.12.2018, 12:58 8
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
А как то можно создать URI не кидая его?
Цитата Сообщение от korvin_ Посмотреть сообщение
приведи пример какого-нибудь URI, который ты передаёшь
И ещё хотелось бы узнать, где происходит выброс исключения.
0
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
02.12.2018, 20:05  [ТС] 9
korvin_, Java 10 стоит. Прикрепляю стек трейс полный.
А как пример может быть это:
Java
1
URI.create("http://76yet.com/bid?sid=i564oj489fgh9456");
Миниатюры
Создание URI из доменного имени без выбрасывания Exception  
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
02.12.2018, 21:42 10
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Java 10 стоит. Прикрепляю стек трейс полный.
А как пример может быть это
М-да, забавно. На 11-й тоже воспроизводится.

Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Но производительность JVM от этого страдает.
Вообще, вроде как основные страдания вызывает формирования стэктрейса, а не throw-catch, а формирования стэка внутри URI не происходит. Впрочем нужно мерять.

Вариант решения простой: выкинуть апачевскую библиотеку и
– использовать стандартный HttpURLConnection
– или любую другую библиотеку, которая работает с URL, а не URI
– или обновиться на JDK11 и использовать их новый HTTP-клиент

Если, конечно, все эти механизмы не преобразуют внутри себя URL к URI, что мне видится маловероятным, но надо пробовать.
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
03.12.2018, 09:11 11
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
HighPredator, да, те что с цифр - те бросают это исключение.
Все понятно. Значит ситуация в следующем: если хост начинается с цифр, то он начинает разбираться как адрес IPv4-схемы. И если это не удалось, то далее идет анализ на предмет "а не является ли сие цифро-буквенным хостом".

Почему тормозит? Потому что очень похоже на багфикс в лоб. Пример этой баги: https://bugs.openjdk.java.net/browse/JDK-4671369
0
03.12.2018, 09:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2018, 09:11
Помогаю со студенческими работами здесь

Продление доменного имени
чет я запутался совсем... Смотрите, домен, который наша фирма покупала у ру-центра был в процессе...

Проверка доменного имени
Здравствуйте! Пытаюсь проверить правильность ввода имени домена, используя регулярное выражение: ...

Надёжность доменного имени
Здравствуйте! Я новичок в веб-технологиях и меня ОЧЕНЬ волнует одна проблема. Ситуация следующая...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru