java.net.UnknownHostException: nombre de host no válido para el servidor: local

124

¿Cuáles son los pasos que debo seguir para resolver el error?

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

Agregué el nuevo nombre de host virtual en el emulador de Android, pero el resultado vuelve a

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

Cuando escribo mi URL de host virtual en mi PC, funciona en la pantalla. Por otra parte, cuando ejecuté el emulador y verifiqué Logcat, no pude leer o verificar el estado de HTTP si 200, 202 o un número de código de error. Simplemente regresó aUnknownHostException

Ashish Agarwal
fuente
66
un poco más de información nos ayudaría a resolver el problema más fácil
pinza
¿estás detrás de un servidor proxy y configuraste los ajustes del proxy? Si es así, es posible que deba excluir localhost y otros hosts que no necesitan la ayuda del servidor Proxy para resolver una dirección IP válida.
pide el
Agregué el nuevo nombre de host virtual en el emulador de Android, pero el resultado vuelve a "java.net.UnknownHostException virtualhostname en java.net.InetAddress.lookUpHostByName (InetAddress.java:506)". Cuando escribo mi URL de host virtual en mi PC, funciona en la pantalla. Por otra parte, cuando ejecuté el emulador y verifiqué Logcat, no pude leer o verificar el estado de HTTP si 200, 202 o un número de código de error. Simplemente regresó a "UnknownHostException"
David Dimalanta

Respuestas:

66

Lo que realmente dice la excepción es que no hay un servidor conocido con el nombre "local". Supongo que estás intentando conectarte a tu computadora local. Intente con el nombre de host "localhost", o quizás 127.0.0.1o ::1(el último es IPv6).

De los javadocs :

Lanzado para indicar que no se pudo determinar la dirección IP de un host.

127.0.0.1o ::1o "localhost"siempre debe ser la interfaz de bucle invertido, por lo que si eso no funciona me sorprendería mucho.

Si realmente hay un servidor llamado "local" en su red, examine su configuración de DNS o agréguela a su archivo de hosts.

André Laszlo
fuente
1
En algunas implementaciones, un reinicio de la JVM podría ser necesario para que los cambios de puerta de enlace / dns surtan efecto, aparentemente.
André Laszlo
68

Estaba teniendo el mismo problema en mi Mac. Encontré el problema cuando pellizqué mi $HOSTNAMEterminal y regresó ping: cannot resolve myHostName: Unknown host.

Resolver:

  1. Hazlo echo $HOSTNAMEen tu terminal.
  2. Cualquier nombre de host se muestra (digamos que myHostName), intente hacer ping a que: ping myHostName. Si regresa ping: cannot resolve myHostName: Unknown host, agregue una entrada en su /etc/hostsarchivo.
  3. Para ese /etc/hostsarchivo de edición y agregue lo siguiente:

    127.0.0.1 myHostName

Espero eso ayude.

Shobhit Puri
fuente
Me pregunto cómo funciona en algunas máquinas listas para usar y en algunas tenemos que agregar la entrada de hosts
Skynet el
16

java.net.UnknownHostException: el host no está resuelto:

Lanzado para indicar que no se pudo determinar la dirección IP de un host.

Esta excepción también se produce cuando está conectado a un wifi válido pero el enrutador no recibe internet. Es muy fácil reproducir esto:

  1. Conéctate a un wifi válido
  2. Ahora retire el cable del enrutador mientras el enrutador está enchufado

¡Observarás este error!

Realmente no puede resolver esto, solo puede notificar al usuario con gracia. (algo así como: "No se puede establecer una conexión")

Ceniza
fuente
1
Sería más general decir que la excepción se produce cuando el host no se encuentra en DNS o cuando el DNS en sí no se puede encontrar, por ejemplo, por cualquier motivo de conectividad de red o una configuración incorrecta.
Marqués de Lorne
Entonces, ¿cómo se soluciona este problema?
cokedude
2
Realmente no puede resolver esto, solo puede notificar al usuario con gracia. (algo así como: "No se puede establecer una conexión")
Ash
¿Qué significa tener este problema en una red escolar pero no mi conexión personal en casa?
nitrato de sodio
@sodiumnitrate puede ser su red de la escuela requiere un documento de identidad / pwd autenticación en primer lugar .. Trate de abrir cualquier URL en el navegador web y ver si lo que se muestre correctamente
Ash
7

Esto no es específico de la pregunta, pero esta pregunta apareció cuando busqué en Google lo mencionado UnknownHostException, y la solución no se encuentra en ningún otro lugar, así que pensé en agregar una respuesta aquí.

La excepción que se recibió continuamente fue:

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

No importa cómo intenté conectarme a un host válido, imprimirlo en el terminal tampoco ayudaría. Todo estuvo bien.

La solución

No solicita trim() la cadena de host que contenía espacios en blanco . Al escribir un servidor proxy, el host se obtuvo de los encabezados HTTP con el uso de split(":")punto y coma para el HOSTencabezado. Esto dejó espacios en blanco y hace que el UnknownHostExceptionhost como espacio en blanco no sea un host válido. Hacer un host = host.trim()sobre String hostresuelto el problema ambiguo.

matrizanomalía
fuente
Este fue mi problema.
Sterling Diaz el
1
Gracias, esto me salvó. En mi caso, el host String que se pasaba a la función tenía un sufijo \ n, ¡así que ejecutarlo .trim()me lo arregló!
rayzinnz
1
Gracias, pasé demasiado tratando de averiguar cuál era el problema hasta que me di cuenta de que escribí un espacio en blanco entre dos direcciones IP diferentes.
Sandoval0992
5

Esto puede suceder debido a varias razones.

1) Verifique si tiene una VPN conectada, puede recibir este error a veces si es así

"Su nombre de host, localhost se resuelve en una dirección de bucle invertido: 127.0.0.1; usando 10.xxx.1.193 en su lugar (en la interfaz cscotun0)"

2) Verifique su $ HOSTNAME

3) intente hacer ping a $ HOSTNAME en la línea de comandos y, si no funciona, modifique la configuración del sistema para que su host local responda a los pings

Sidharth N. Kashyap
fuente
5

Su nombre de host falta. JBoss usa esta variable de entorno ($ HOSTNAME) cuando se conecta al servidor.

[root@xyz ~]# echo $HOSTNAME
xyz

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

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

Hay docenas de cosas que pueden causar esto. Comente si descubre una nueva razón.

Para un pirateo hasta que pueda resolver permanentemente este problema en su servidor, puede agregar una línea al final de su archivo / etc / hosts:

127.0.0.1 xyz.xxx.xxx.edu xyz
MacGyver
fuente
Mantenimiento preventivo: unix.stackexchange.com/questions/248616/…
MacGyver
4

Intenta lo siguiente:

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

Recortar () la URL

rex roy
fuente
Recortar una cadena codificada sin espacios no tiene sentido.
Blake McBride
1

Intentando conectar a su computadora local. Intente con el nombre de host "localhost" o tal vez :: / - el último es ipv6

joshwayne diestro
fuente
1

Intente establecer la variable de entorno SPARK_LOCAL_IP en la dirección IP (puede ser localhost, es decir, su propia dirección IP) que desea conectar. P.ej

$ export SPARK_LOCAL_IP=182.95.208.152

De esta manera, no será necesario que modifique la configuración de Linux existente. Trabajó para mí, la esperanza también te ayuda.

Jyoti Gupta
fuente
0

Conecte su teléfono móvil con una conexión wifi diferente con un proveedor de servicios diferente . No sé el problema exacto, pero no pude conectarme al servidor con un proveedor de servicios específico, pero funciona cuando me conecté a otro proveedor de servicios. ¡Así que pruébalo!

Suraj Vaishnav
fuente
0

Tuve este problema en mi aplicación de Android cuando tomé un archivo xml, el formato de mi enlace no era válido, volví a formatear con la URL completa y funcionó.

vasmos
fuente
0

Si está aquí porque su emulador le da esa excepción, vaya a Herramientas> Administrador AVD en su emulador de Android y arranque en frío su emulador.

Felix Favour Chinemerem
fuente
-1

Si su archivo / etc / localhosts tiene una entrada como la siguiente: Agregue la entrada del nombre de host como se muestra a continuación:

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

Esto debería resolver el problema.

user8326951
fuente