Welche Schritte sollte ich unternehmen, um den Fehler zu beheben:
java.net.UnknownHostException: Invalid hostname for server: local
Ich habe den neuen virtuellen Hostnamen im Android-Emulator hinzugefügt, aber das Ergebnis kehrt zu zurück
java.net.UnknownHostException virtualhostname at
java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
Wenn ich meine Virtualhost-URL auf meinem PC eingebe, wird sie angezeigt. Wenn ich Emulator ausführte und Logcat überprüfte, konnte ich den HTTP-Status nicht lesen oder überprüfen, wenn 200, 202 oder eine Fehlercode-Nummer vorhanden waren. Es kehrte einfach zurückUnknownHostException
Antworten:
Was die Ausnahme wirklich sagt, ist, dass es keinen bekannten Server mit dem Namen "local" gibt. Ich vermute, dass Sie versuchen, eine Verbindung zu Ihrem lokalen Computer herzustellen. Versuchen Sie es
"localhost"
stattdessen mit dem Hostnamen oder vielleicht127.0.0.1
oder::1
(der letzte ist IPv6).Aus den Javadocs :
127.0.0.1
oder::1
oder"localhost"
sollte immer die Loopback-Schnittstelle sein. Wenn das nicht funktioniert, wäre ich wirklich überrascht.Wenn sich in Ihrem Netzwerk wirklich ein Server namens "local" befindet, überprüfen Sie Ihre DNS-Einstellungen oder fügen Sie ihn Ihrer Hosts-Datei hinzu.
quelle
Ich hatte das gleiche Problem auf meinem Mac. Ich habe das Problem gefunden, als ich mein
$HOSTNAME
Terminal anpingte und es zurückkehrteping: cannot resolve myHostName: Unknown host
.Lösen:
echo $HOSTNAME
auf Ihrem Terminal.myHostName
), versuchen Sie, ihn zu pingen :ping myHostName
. Wenn es zurückkehrt,ping: cannot resolve myHostName: Unknown host
fügen Sie Ihrer/etc/hosts
Datei einen Eintrag hinzu .Für diese Bearbeitungsdatei
/etc/hosts
und fügen Sie Folgendes hinzu:127.0.0.1 myHostName
Ich hoffe es hilft.
quelle
Wird ausgelöst, um anzuzeigen, dass die IP-Adresse eines Hosts nicht ermittelt werden konnte.
Diese Ausnahme wird auch ausgelöst, wenn Sie mit einem gültigen WLAN verbunden sind, der Router jedoch kein Internet empfängt. Es ist sehr einfach, dies zu reproduzieren:
Sie werden diesen Fehler beobachten !!
Sie können dies nicht wirklich lösen. Sie können den Benutzer nur ordnungsgemäß benachrichtigen. (so etwas wie - "Verbindung kann nicht hergestellt werden")
quelle
Dies ist nicht spezifisch für die Frage, aber diese Frage wurde angezeigt, als ich nach dem genannten gegoogelt habe
UnknownHostException
, und das Update wurde nirgendwo anders gefunden, sodass ich dachte, ich würde hier eine Antwort hinzufügen.Die Ausnahme, die kontinuierlich erhalten wurde, war:
Egal wie ich versucht habe, eine Verbindung zu einem gültigen Host herzustellen, das Drucken im Terminal würde auch nicht helfen. Alles war richtig.
Die Lösung
Kein Aufruf
trim()
der Host-Zeichenfolge, die Leerzeichen enthält . Beim Schreiben eines Proxyservers wurde der Host aus HTTP-Headern unter Verwendungsplit(":")
von Semikolons für denHOST
Header abgerufen . Dies hat Leerzeichen hinterlassen und bewirkt, dassUnknownHostException
als Host mit Leerzeichen kein gültiger Host ist. Doing ahost = host.trim()
auf derString host
gelöst die zweideutige Frage.quelle
.trim()
es für mich behoben, wenn ich darauf lief!Dies kann verschiedene Gründe haben
1) Überprüfen Sie, ob Sie eine VPN-Verbindung haben. Wenn ja, wird dieser Fehler manchmal angezeigt
"Ihr Hostname, localhost, wird in eine Loopback-Adresse aufgelöst: 127.0.0.1; verwenden Sie stattdessen 10.xxx.1.193 (auf der Schnittstelle cscotun0)."
2) Überprüfen Sie Ihren $ HOSTNAME
3) Versuchen Sie, $ HOSTNAME in der Befehlszeile zu pingen. Wenn dies nicht funktioniert, passen Sie die Systemeinstellungen an, damit Ihr lokaler Host auf Pings reagiert
quelle
Ihr Hostname fehlt. JBoss verwendet diese Umgebungsvariable ($ HOSTNAME), wenn eine Verbindung zum Server hergestellt wird.
Es gibt Dutzende von Dingen, die dies verursachen können. Bitte kommentieren Sie, wenn Sie einen neuen Grund entdecken.
Für einen Hack, bis Sie dieses Problem dauerhaft auf Ihrem Server beheben können, können Sie am Ende Ihrer Datei / etc / hosts eine Zeile hinzufügen :
quelle
Versuche Folgendes :
Trim () die URL
quelle
Versuchen Sie stattdessen, eine Verbindung zu Ihrem lokalen Computer herzustellen. Versuchen Sie stattdessen, den Hostnamen "localhost" zu verwenden, oder vielleicht :: / - der letzte ist ipv6
quelle
Bitte versuchen Sie, die Umgebungsvariable SPARK_LOCAL_IP auf die IP-Adresse festzulegen (kann localhost sein, dh Ihre eigene IP-Adresse), die Sie verbinden möchten. Z.B
$ export SPARK_LOCAL_IP=182.95.208.152
Auf diese Weise müssen Sie die vorhandenen Linux-Einstellungen nicht ändern. Hat für mich gearbeitet, Hoffnung hilft dir auch.
quelle
Verbinden Sie Ihr Handy mit einer anderen WLAN-Verbindung mit einem anderen Dienstanbieter . Ich kenne das genaue Problem nicht, aber ich konnte keine Verbindung zum Server mit einem bestimmten Dienstanbieter herstellen, aber es funktioniert, wenn ich eine Verbindung zu einem anderen Dienstanbieter herstelle. Also probier es aus!
quelle
Ich hatte dieses Problem in meiner Android-App beim Abrufen einer XML-Datei. Das Format meines Links war ungültig. Ich habe es mit der vollständigen URL neu formatiert und es hat funktioniert.
quelle
Wenn Sie hier sind, weil Ihr Emulator Ihnen diese Ausnahme gibt, gehen Sie in Ihrem Android-Emulator zu Extras> AVD Manager und starten Sie Ihren Emulator kalt.
quelle
Wenn Ihre / etc / localhosts-Datei den folgenden Eintrag enthält: Fügen Sie den folgenden Hostnameneintrag hinzu:
Dies sollte das Problem beheben.
quelle