Java.net.UnknownHostException: Недопустимое имя хоста для сервера: local
Какие шаги я должен предпринять для устранения ошибки:
java.net.UnknownHostException: Invalid hostname for server: local
Я добавил новое имя виртуального хоста в эмулятор Android, но результат возвращается к
java.net.UnknownHostException virtualhostname at
java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
Когда я набираю свой виртуальный URL-адрес на своем ПК, он работает на дисплее. Затем, когда я запускал эмулятор и проверял Logcat, я не смог прочитать или проверить статус HTTP, если 200, 202 или код ошибки. Он просто вернулся к UnknownHostException
Ответы
Ответ 1
На самом деле исключение говорит о том, что не существует известного сервера с именем "local". Я предполагаю, что вы пытаетесь подключиться к локальному компьютеру. Попробуйте вместо этого использовать имя хоста "localhost"
, или, возможно, 127.0.0.1
или ::1
(последний - IPv6).
Из Javadocs:
Брошенный, чтобы указать, что IP-адрес хоста не может быть определен.
127.0.0.1
или ::1
или "localhost"
всегда должны быть интерфейсом обратной связи, поэтому, если это не сработает, я буду очень удивлен.
Если в вашей сети действительно есть сервер с именем "local" - проверьте настройки DNS или добавьте его в файл hosts.
Ответ 2
У меня была такая же проблема на моем mac. Я нашел проблему, когда я пингует мой терминал $HOSTNAME
с терминала, и он вернул ping: cannot resolve myHostName: Unknown host
.
Чтобы решить:
Надеюсь, что это поможет.
Ответ 3
java.net.UnknownHostException: Хост не решен:
Брошено, чтобы указать, что IP-адрес хоста не может быть определен.
Это исключение также возникает при подключении к действительному Wi-Fi, но маршрутизатор не получает Интернет. Его очень легко воспроизвести:
- Подключиться к действующему wifi
- Теперь выньте кабель из маршрутизатора, когда маршрутизатор подключен
Вы заметите эту ошибку!
Вы не можете решить эту проблему, вы можете только изящно уведомлять пользователя. (что-то вроде "Невозможно установить соединение" )
Ответ 4
Это может произойти по разным причинам.
1) Проверьте, подключен ли VPN, иногда вы можете получить эту ошибку, если yes
"Ваше имя хоста, localhost разрешает адрес loopback: 127.0.0.1, вместо этого вместо 10.xxx.1.193 (на интерфейсе cscotun0)"
2) Проверьте свой $HOSTNAME
3) попробуйте ping $HOSTNAME в командной строке, и если он не работает, настройте системные настройки, чтобы ваш локальный сервер ответил на pings
Ответ 5
Это не относится к вопросу, но этот вопрос возник, когда я был Googling для упомянутого UnknownHostException
, и исправление не найдено нигде, поэтому я подумал, что добавлю здесь ответ.
Исключением, которое было постоянно получено, было:
java.net.UnknownHostException: google.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
...
Независимо от того, как я пытался подключиться к любому действительному хосту, его печать в терминале тоже не помогла бы. Все было правильно.
Решение
Не вызывать trim()
для строки хоста, содержащей пробелы. При написании прокси-сервера хост был получен из заголовков HTTP с использованием split(":")
точками с запятой для заголовка HOST
. Это оставило пробел и вызывает UnknownHostException
, поскольку хост с пробелом не является допустимым хостом. Выполнение host = host.trim()
на String host
позволило решить неоднозначную проблему.
Ответ 6
Ваше имя хоста отсутствует. JBoss использует эту переменную среды ($ HOSTNAME), когда она подключается к серверу.
[[email protected] ~]# echo $HOSTNAME
xyz
[[email protected] ~]# ping $HOSTNAME
ping: unknown host xyz
[[email protected] ~]# hostname -f
hostname: Unknown host
Есть десятки вещей, которые могут вызвать это. Прошу прокомментировать, если вы обнаружите новую причину.
Для взлома, пока вы не сможете окончательно решить эту проблему на своем сервере, вы можете добавить строку в конец вашего файла /etc/hosts:
127.0.0.1 xyz.xxx.xxx.edu xyz
Ответ 7
Попробуйте следующее:
String url = "http://www.google.com/search?q=java";
URL urlObj = (URL)new URL(url.trim());
HttpURLConnection httpConn =
(HttpURLConnection)urlObj.openConnection();
httpConn.setRequestMethod("GET");
Integer rescode = httpConn.getResponseCode();
System.out.println(rescode);
Обрезать() URL
Ответ 8
Попытка подключиться к локальному компьютеру с помощью имени хоста "localhost" вместо или, возможно,::/- последним является ipv6
Ответ 9
Попробуйте установить переменную среды SPARK_LOCAL_IP на ip-адрес (может быть localhost i.e. ваш собственный IP-адрес), который вы хотите подключить. Например.
$ export SPARK_LOCAL_IP=182.95.208.152
Таким образом вам не потребуется изменять существующие настройки linux.
Работал для меня, надеюсь, вам тоже поможет.
Ответ 10
Подключите свой мобильный телефон с другим Wi-Fi соединение с другим поставщиком услуг. Я не знаю точную проблему, но я не мог подключиться к серверу с конкретным поставщиком услуг, но он работает, когда я подключился к другому поставщику услуг. Так что попробуйте!
Ответ 11
Получение ниже крошечный во время MQTT IPV6 COMMUNICATION. Как передать IPV6-адрес от издателя? Это похожая проблема:
В настоящее время проходит:
String broker = "tcp://[2002:ab4:bc63:10:f931:9c2:8a41:b334]:1883"
[1/31/2019 9:45 AM] Rajendrabhal, Dhruv11:
reason 0
msg MqttException
loc MqttException
cause java.net.UnknownHostException: [2002
excep MqttException (0) - java.net.UnknownHostException: [2002
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:664)
Ответ 12
Если ваш файл /etc/localhosts имеет запись, как показано ниже:
Добавьте имя хоста, как показано ниже:
127.0.0.1 local host (add your hostname here)
::1 (add hostname here) (the last one is IPv6).
Это должно решить проблему.
Ответ 13
Вы также должны заменить []
!
Пример [hostname]
, и вы можете заменить все это примерно так:
jdbc:mysql://localhost:3306/openfire