java.сеть.UnknownHostException: недопустимое имя хоста для сервера: локальный

какие шаги я должен предпринять для решения ошибки:

java.net.UnknownHostException: Invalid hostname for server: local

я добавил новое имя виртуального хоста в эмуляторе Android, но результат возвращается к

 java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)

когда я набираю URL-адрес virtualhost на своем ПК, он работает на дисплее. Опять же, когда я запускал эмулятор и проверял Logcat, я не мог прочитать или проверить состояние HTTP, если 200, 202 или код ошибки. Он просто вернулся в UnknownHostException

12 ответов


на самом деле исключение говорит о том, что нет известного сервера с именем "local". Я предполагаю, что вы пытаетесь подключиться к локальному компьютеру. Попробуйте с именем хоста "localhost" вместо этого, или, возможно,127.0.0.1 или ::1 (последний-IPv6).

С javadocs:

брошенный, чтобы указать, что IP-адрес хозяина определить не удалось.

127.0.0.1или ::1 или "localhost" всегда должен быть интерфейс loopback, поэтому, если это не сработает, я был бы очень удивлен.

если в вашей сети действительно есть сервер под названием "local" - проверьте настройки DNS или добавьте его в файл hosts.


у меня была такая же проблема на моем mac. Я нашел проблему, когда я позвала моя $HOSTNAME из терминала и он вернулся ping: cannot resolve myHostName: Unknown host.

решения:

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

    127.0.0.1 myHostName

надеюсь, что это помогает.


java.сеть.UnknownHostException: хост не разрешен:

брошенный, чтобы указать, что IP-адрес хоста не может быть определен.

это исключение также возникает, когда вы подключены к действительному wifi, но маршрутизатор не получает интернет. Его очень легко воспроизвести это:

  1. подключение к действительному wifi
  2. теперь удалите кабель из маршрутизатора, пока маршрутизатор подключен

вы обратите внимание на эту ошибку!!

вы не можете действительно решить эту проблему, вы можете только уведомить изящно пользователя. (что - то вроде - "невозможно установить связь")


Это может произойти по разным причинам

1) Проверьте, подключен ли VPN, вы можете получить эту ошибку иногда, если да

" ваше имя хоста, localhost разрешает адрес обратной связи: 127.0.0.1; используя 10.xxx.1.193 Вместо (на интерфейсе cscotun0)"

2) Проверьте свой $ HOSTNAME

3) Попробуйте ping $HOSTNAME в командной строке, и если он не работает, настройте Системные настройки, чтобы ваш локальный хост отвечал на pings


отсутствует имя хоста. JBoss использует эту переменную среды ($HOSTNAME) при подключении к серверу.

[root@xyz ~]# echo $HOSTNAME
xyz

[root@xyz ~]# ping $HOSTNAME
ping: unknown host xyz

[root@xyz ~]# hostname -f
hostname: Unknown host

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

для взлома, пока вы не сможете окончательно решить эту проблему на своем сервере, вы можете добавить строку до конца вашего файла / etc / hosts:

127.0.0.1 xyz.xxx.xxx.edu xyz

это не относится к вопросу, но этот вопрос появился, когда я гуглил для упомянутого 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 решить неоднозначный вопрос.


попробуйте следующее :

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);

Trim () URL


попытка подключения к локальному компьютеру.попробуйте вместо этого использовать имя хоста "localhost" или, возможно ::/ - последний-ipv6


попробуйте установить переменную среды SPARK_LOCAL_IP на ip-адрес (может быть localhost, т. е. ваш собственный ip-адрес), который вы хотите подключить. Е. Г.

$ export SPARK_LOCAL_IP=182.95.208.152

таким образом, вам не потребуется изменять существующие настройки linux. Работал на меня, Хоуп тебе тоже помогает.


Connect ваш мобильный телефон с различным подключением wifi с другим поставщиком услуг. Я не знаю точной проблемы, но я не мог подключиться к серверу с определенным поставщиком услуг, но он работает, когда я подключился к другому поставщику услуг. Так попробуй!


Если ваш файл / etc/localhosts имеет следующую запись: Добавьте запись имени хоста, как показано ниже:

127.0.0.1 local host (add your hostname here)
::1 (add hostname here) (the last one is IPv6).

Это должно решить проблему.


вы должны заменить [] слишком!

пример [hostname] и вы должны заменить все это чем-то вроде этого:

jdbc:mysql://localhost:3306/openfire