147 votes

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

Quelles sont les étapes à suivre pour résoudre cette erreur ?

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

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

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

Lorsque je tape l'URL de mon virtualhost sur mon PC, il fonctionne à l'écran. En revanche, lorsque j'ai lancé l'émulateur et que j'ai vérifié sur Logcat, je n'ai pas pu lire ou vérifier le statut HTTP (200, 202 ou un code d'erreur). Il est simplement retourné à UnknownHostException

7 votes

Un peu plus d'information nous aiderait à résoudre le problème plus facilement

0 votes

Êtes-vous derrière un serveur Proxy et avez-vous configuré les paramètres du proxy ? Si c'est le cas, vous devrez peut-être exclure localhost et les autres hôtes qui n'ont pas besoin de l'aide du serveur proxy pour obtenir une adresse IP valide.

0 votes

J'ai ajouté le nouveau nom d'hôte virtuel sur l'émulateur Android mais le résultat renvoie "java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName(InetAddress.java:506)". Lorsque je tape l'URL de mon serveur virtuel sur mon PC, il fonctionne à l'écran. Par contre, lorsque j'utilise l'émulateur et que je vérifie sur Logcat, je n'arrive pas à lire ou à vérifier le statut HTTP (200, 202 ou un code d'erreur). Il est simplement retourné à "UnknownHostException".

72voto

André Laszlo Points 3783

L'exception signifie en fait qu'il n'existe aucun serveur connu portant le nom "local". Je pense que vous essayez de vous connecter à votre ordinateur local. Essayez avec le nom d'hôte "localhost" à la place, ou peut-être 127.0.0.1 o ::1 (le dernier est IPv6).

De la javadocs :

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

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

S'il existe réellement un serveur appelé "local" sur votre réseau, examinez vos paramètres DNS ou ajoutez-le à votre fichier hosts.

2 votes

Sur certaines implémentations, un redémarrage de la JVM peut être nécessaire pour que les changements de passerelle/dns prennent effet, apparemment.

16voto

Ash Points 588

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 levée lorsque vous êtes connecté à un wifi valide mais que le routeur ne reçoit pas l'internet. Il est très facile de reproduire ce phénomène :

  1. Connectez-vous à un réseau wifi valide
  2. Maintenant, retirez le câble du routeur pendant que le routeur est branché.

Vous observerez cette erreur !

Vous ne pouvez pas vraiment résoudre ce problème, vous pouvez seulement avertir l'utilisateur de manière élégante. (quelque chose comme - "Impossible d'établir une connexion")

1 votes

Il serait plus général de dire que l'exception est soulevée lorsque l'hôte n'est pas trouvé dans le DNS ou lorsque le DNS lui-même est introuvable, par exemple dans le cas de cualquier une raison de connectivité réseau, ou une mauvaise configuration.

0 votes

Alors comment résoudre ce problème ?

3 votes

Vous ne pouvez pas vraiment résoudre ce problème, vous pouvez seulement avertir l'utilisateur de manière élégante. (quelque chose comme - "Impossible d'établir une connexion")

5voto

Cela peut se produire pour diverses raisons

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

"Votre nom d'hôte, localhost, se résout à une adresse de bouclage : 127.0.0.1 ; utiliser 10.xxx.1.193 à la place (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 du système pour que votre hôte local réponde aux pings.

1voto

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

-13voto

Gaston Points 1

Vous devez remplacer le [] aussi !

L'exemple est le suivant [hostname] et vous devriez remplacer tout cela par quelque chose comme ceci :

jdbc:mysql://localhost:3306/openfire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X