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.

Чтобы решить:

  • Сделайте echo $HOSTNAME на вашем терминале.
  • Независимо от имени хоста, которое он показывает (скажем, myHostName), попробуйте выполнить ping: ping myHostName. Если он возвращает ping: cannot resolve myHostName: Unknown host, добавьте запись в ваш /etc/hosts файл.
  • Для этого файла редактирования /etc/hosts и добавьте следующее:

    127.0.0.1 myHostName

Надеюсь, что это поможет.

Ответ 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