java.net.UnknownHostException: nom d'hôte non valide pour le serveur: local

124

Quelles sont les étapes à suivre pour résoudre l'erreur:

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

J'ai ajouté le nouveau nom d'hôte virtuel à l'émulateur Android mais le résultat revient à

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

Lorsque je tape mon URL d'hôte virtuel sur mon PC, cela fonctionne à l'écran. Là encore, lorsque j'ai exécuté sur Emulator et vérifié Logcat, je ne pouvais pas lire ou vérifier l'état HTTP si 200, 202 ou un numéro de code d'erreur. Il est simplement revenu àUnknownHostException

Ashish Agarwal
la source
6
un peu plus d'informations nous aideraient à résoudre le problème plus facilement
pincez le
êtes-vous derrière un serveur proxy et avez-vous configuré les paramètres proxy? Si tel est le cas, vous devrez peut-être exclure l'hôte local et d'autres hôtes qui n'ont pas besoin de l'aide du serveur proxy pour se résoudre à une adresse IP valide.
asgs
J'ai ajouté le nouveau nom d'hôte virtuel à l'émulateur Android mais le résultat revient à "java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName (InetAddress.java:506)". Lorsque je tape mon URL d'hôte virtuel sur mon PC, cela fonctionne à l'écran. Là encore, lorsque j'ai exécuté sur Emulator et vérifié sur Logcat, je ne pouvais pas lire ou vérifier l'état HTTP si 200, 202 ou un numéro de code d'erreur. Il est simplement retourné à "UnknownHostException"
David Dimalanta

Réponses:

66

Ce que l'exception veut vraiment dire, c'est qu'il n'y a pas de serveur connu avec le nom "local". Je suppose que vous essayez de vous connecter à votre ordinateur local. Essayez "localhost"plutôt avec le nom d'hôte , ou peut-être 127.0.0.1ou ::1(le dernier est IPv6).

Depuis les javadocs :

Lancé pour indiquer que l'adresse IP d'un hôte n'a pas pu être déterminée.

127.0.0.1ou ::1ou "localhost"devrait toujours être l'interface de bouclage, donc si cela ne fonctionne pas, je serais vraiment surpris.

S'il y a vraiment un serveur appelé «local» sur votre réseau - examinez vos paramètres DNS ou ajoutez-le à votre fichier d'hôtes.

André Laszlo
la source
1
Sur certaines implémentations, un redémarrage de la JVM peut être nécessaire pour que les modifications de passerelle / DNS prennent effet, apparemment.
André Laszlo
69

J'avais le même problème sur mon mac. J'ai trouvé le problème lorsque j'ai envoyé un ping à mon $HOSTNAMEterminal et qu'il est revenu ping: cannot resolve myHostName: Unknown host.

Résoudre:

  1. Faites echo $HOSTNAMEsur votre terminal.
  2. Quel que soit le hostname il montre (disons myHostName), essayez de le ping: ping myHostName. S'il revient, ping: cannot resolve myHostName: Unknown hostajoutez une entrée dans votre /etc/hostsfichier.
  3. Pour ce /etc/hostsfichier d' édition et ajoutez ce qui suit:

    127.0.0.1 myHostName

J'espère que ça aide.

Shobhit Puri
la source
Je me demande comment cela fonctionne sur certaines machines hors de la boîte et sur certaines, nous devons ajouter l'entrée d'hôtes
Skynet
16

java.net.UnknownHostException: l'hôte n'est pas résolu:

Lancé pour indiquer que l'adresse IP d'un hôte n'a pas pu être déterminée.

Cette exception est également déclenchée lorsque vous êtes connecté à un wifi valide mais que le routeur ne reçoit pas Internet. Il est très facile de reproduire ceci:

  1. Connectez-vous à un wifi valide
  2. Retirez maintenant le câble du routeur lorsque le routeur est branché

Vous observerez cette erreur !!

Vous ne pouvez pas vraiment résoudre cela, vous ne pouvez avertir l'utilisateur que gracieusement. (quelque chose comme - "Impossible d'établir une connexion")

Cendre
la source
1
Il serait plus général de dire que l'exception est levée lorsque l'hôte n'est pas trouvé dans le DNS ou lorsque le DNS lui-même ne peut pas être trouvé, par exemple pour une raison de connectivité réseau ou une mauvaise configuration.
Marquis de Lorne
Alors, comment résolvez-vous ce problème?
cokedude
2
Vous ne pouvez pas vraiment résoudre cela, vous ne pouvez avertir l'utilisateur que gracieusement. (quelque chose comme - "Impossible d'établir une connexion")
Ash
Que signifie avoir ce problème dans un réseau scolaire, mais pas ma connexion personnelle à la maison?
nitrate de sodium
@sodiumnitrate Peut-être que le réseau de votre école nécessite d'abord une authentification id / pwd .. Essayez d'ouvrir n'importe quelle URL Web dans le navigateur et voyez si elle s'affiche correctement
Cendres
7

Ce n'est pas spécifique à la question, mais cette question est apparue lorsque je cherchais sur Google pour le UnknownHostException , et le correctif ne se trouve nulle part ailleurs, alors j'ai pensé ajouter une réponse ici.

L'exception qui a été continuellement reçue était:

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

Peu importe comment j'ai essayé de me connecter à un hôte valide, l'imprimer dans le terminal n'aiderait pas non plus. Tout allait bien.

La solution

Ne pas appeler trim() la chaîne hôte contenant des espaces . Lors de l'écriture d'un serveur proxy, l'hôte a été obtenu à partir d'en-têtes HTTP en utilisant des split(":")points-virgules pour l'en- HOSTtête. Cet espace blanc gauche et provoque le en UnknownHostExceptiontant qu'hôte avec un espace blanc n'est pas un hôte valide. Faire un host = host.trim()sur le a String hostrésolu le problème ambigu.

matriceanomalie
la source
C'était mon problème.
Sterling Diaz
1
Merci - cela m'a sauvé. Dans mon cas, l'hôte String passé à la fonction avait un suffixe \ n, donc courir .trim()sur cela l'a corrigé pour moi!
rayzinnz
1
Merci, j'ai passé trop de temps à essayer de comprendre quel était le problème jusqu'à ce que je réalise que j'ai tapé un espace vide entre deux adresses IP différentes.
Sandoval0992
5

Cela peut se produire pour diverses raisons

1) Vérifiez si vous avez un VPN connecté, vous pouvez parfois obtenir cette erreur si oui

"Votre nom d'hôte, localhost se résout en une adresse de bouclage: 127.0.0.1; en utilisant plutôt 10.xxx.1.193 (sur l'interface cscotun0)"

2) Vérifiez votre $ HOSTNAME

3) essayez d'envoyer un ping à $ HOSTNAME en ligne de commande et si cela ne fonctionne pas, modifiez les paramètres système pour que votre hôte local réponde aux pings

Sidharth N. Kashyap
la source
5

Votre nom d'hôte est manquant. JBoss utilise cette variable d'environnement ($ HOSTNAME) lorsqu'il se connecte au serveur.

[root@xyz ~]# echo $HOSTNAME
xyz

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

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

Il y a des dizaines de choses qui peuvent causer cela. Veuillez commenter si vous découvrez une nouvelle raison.

Pour un piratage jusqu'à ce que vous puissiez résoudre définitivement ce problème sur votre serveur, vous pouvez ajouter une ligne à la fin de votre fichier / etc / hosts:

127.0.0.1 xyz.xxx.xxx.edu xyz
MacGyver
la source
Maintenance préventive: unix.stackexchange.com/questions/248616/…
MacGyver
4

Essayez ce qui suit:

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

Couper () l'URL

rex roy
la source
Couper une chaîne codée en dur sans espaces n'a aucun sens.
Blake McBride
1

Essayer de vous connecter à votre ordinateur local.try avec le nom d'hôte "localhost" à la place ou peut-être :: / - le dernier est ipv6

Joshwayne Diestro
la source
1

Veuillez essayer de définir la variable d'environnement SPARK_LOCAL_IP sur l'adresse IP (peut être localhost, c'est-à-dire votre propre adresse IP) à laquelle vous souhaitez vous connecter. Par exemple

$ export SPARK_LOCAL_IP=182.95.208.152

De cette façon, vous ne serez pas obligé de modifier les paramètres Linux existants. A travaillé pour moi, l'espoir vous aide aussi.

Jyoti Gupta
la source
0

Connectez votre mobile avec une connexion wifi différente avec un fournisseur de services différent . Je ne connais pas le problème exact mais je n'ai pas pu me connecter au serveur avec un fournisseur de services spécifique, mais cela fonctionne lorsque je me connecte à un autre fournisseur de services. Alors essayez-le!

Suraj Vaishnav
la source
0

J'ai eu ce problème dans mon application Android lors de la saisie d'un fichier xml, le format de mon lien n'était pas valide, j'ai reformaté avec l'URL complète et cela a fonctionné.

vasmos
la source
0

Si vous êtes ici parce que votre émulateur vous donne cette exception, allez dans Outils> AVD Manager dans votre émulateur Android et démarrez à froid votre émulateur.

Felix Favor Chinemerem
la source
-1

Si votre fichier / etc / localhosts a une entrée comme ci-dessous: Ajoutez une entrée de nom d'hôte comme ci-dessous:

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

Cela devrait résoudre le problème.

user8326951
la source