java.net.UnknownHostException: Nama host tidak valid untuk server: lokal


124

Apa langkah-langkah yang harus saya ambil untuk mengatasi kesalahan:

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

Saya menambahkan nama host virtual baru di emulator Android tetapi hasilnya kembali ke

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

Saat saya mengetik URL virtualhost saya di PC, URL tersebut berfungsi di layar. Kemudian lagi, ketika saya menjalankan Emulator dan memeriksa Logcat, saya tidak dapat membaca atau memeriksa status HTTP jika 200, 202, atau nomor kode kesalahan. Ini hanya kembali keUnknownHostException


6
sedikit lebih banyak informasi akan membantu kami memecahkan masalah dengan lebih mudah
klem

apakah Anda berada di belakang server proxy dan mengonfigurasi pengaturan proxy? Jika demikian, Anda mungkin perlu mengecualikan localhost dan host lain yang tidak memerlukan bantuan server Proxy untuk menyelesaikan ke Alamat IP yang valid.
asgs

Saya menambahkan nama host virtual baru di Android emulator tetapi hasilnya kembali ke "java.net.UnknownHostException virtualhostname di java.net.InetAddress.lookUpHostByName (InetAddress.java:506)". Saat saya mengetik URL virtualhost saya di PC, URL tersebut berfungsi di layar. Kemudian lagi, ketika saya menjalankan Emulator dan memeriksa Logcat, saya tidak dapat membaca atau memeriksa status HTTP jika 200, 202, atau nomor kode kesalahan. Ini hanya kembali ke "UnknownHostException"
David Dimalanta

Jawaban:


66

Apa pengecualian yang sebenarnya dikatakan adalah bahwa tidak ada server yang dikenal dengan nama "lokal". Dugaan saya adalah Anda mencoba menyambung ke komputer lokal Anda. Coba dengan nama host "localhost"sebagai gantinya, atau mungkin 127.0.0.1atau ::1(yang terakhir adalah IPv6).

Dari javadocs :

Ditampilkan untuk menunjukkan bahwa alamat IP suatu host tidak dapat ditentukan.

127.0.0.1atau ::1atau "localhost"harus selalu menjadi antarmuka loopback, jadi jika itu tidak berhasil, saya akan sangat terkejut.

Jika memang ada server bernama "lokal" di jaringan Anda - periksa pengaturan DNS Anda atau tambahkan ke file host Anda.


1
Pada beberapa implementasi, restart JVM mungkin diperlukan agar perubahan gateway / dns bisa diterapkan.
André Laszlo

69

Saya mengalami masalah yang sama di Mac saya. Saya menemukan masalah ketika saya melakukan ping $HOSTNAMEdari terminal dan kembali ping: cannot resolve myHostName: Unknown host.

Untuk menyelesaikan:

  1. Lakukan echo $HOSTNAMEdi terminal Anda.
  2. Apapun hostname itu menunjukkan (memungkinkan katakanlah myHostName), cobalah untuk ping itu: ping myHostName. Jika kembali, ping: cannot resolve myHostName: Unknown hosttambahkan entri ke /etc/hostsfile Anda .
  3. Untuk itu edit /etc/hostsfile dan tambahkan berikut ini:

    127.0.0.1 myHostName

Semoga membantu.


Bertanya-tanya bagaimana cara kerjanya pada beberapa mesin di luar kotak dan pada beberapa kami harus menambahkan entri host
Skynet

16

java.net.UnknownHostException: Host belum terselesaikan:

Ditampilkan untuk menunjukkan bahwa alamat IP suatu host tidak dapat ditentukan.

Pengecualian ini juga dimunculkan ketika Anda terhubung ke wifi yang valid tetapi router tidak menerima internet. Sangat mudah untuk mereproduksi ini:

  1. Hubungkan ke wifi yang valid
  2. Sekarang lepaskan kabel dari router saat router dicolokkan

Anda akan melihat kesalahan ini !!

Anda tidak dapat menyelesaikan ini, Anda hanya dapat memberi tahu pengguna dengan anggun. (sesuatu seperti - "Tidak dapat membuat sambungan")


1
Ini akan menjadi lebih umum untuk mengatakan bahwa pengecualian dimunculkan ketika tuan rumah tidak ditemukan di DNS atau ketika DNS itu sendiri tidak dapat ditemukan, misalnya untuk setiap alasan konektivitas jaringan, atau kesalahan konfigurasi.
Marquis dari Lorne

Jadi, bagaimana Anda memperbaiki masalah ini?
cokedude

2
Anda tidak dapat menyelesaikan ini, Anda hanya dapat memberi tahu pengguna dengan anggun. (Sesuatu seperti - "Tidak dapat membuat sambungan")
Ash

Apa artinya memiliki masalah ini di jaringan sekolah tetapi bukan koneksi pribadi saya di rumah?
sodiumnitrate

@sodiumnitrate Mungkin jaringan sekolah Anda memerlukan beberapa otentikasi id / pwd terlebih dahulu .. Coba buka url web apa pun di browser dan lihat apakah itu ditampilkan dengan benar
Ash

7

Ini tidak khusus untuk pertanyaan tersebut, tetapi pertanyaan ini muncul ketika saya Googling untuk yang disebutkan UnknownHostException, dan perbaikan tidak ditemukan di tempat lain jadi saya pikir saya akan menambahkan jawaban di sini.

Pengecualian yang terus diterima adalah:

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

Tidak peduli bagaimana saya mencoba menghubungkan ke host yang valid, mencetaknya di terminal juga tidak akan membantu. Semuanya baik-baik saja.

Solusinya

Tidak menelepon trim() string host yang berisi spasi . Dalam menulis server proxy, host diperoleh dari header HTTP dengan menggunakan split(":")tanda titik koma untuk HOSTheader. Ini meninggalkan spasi kosong, dan menyebabkan UnknownHostExceptionsebagai host dengan spasi bukan host yang valid. Melakukan suatu host = host.trim()masalah String hostmemecahkan masalah yang ambigu.


Ini adalah masalahku.
Sterling Diaz

1
Terima kasih - ini menyelamatkan saya. Dalam kasus saya, host String yang diteruskan ke fungsi memiliki akhiran \ n, jadi menjalankannya akan .trim()memperbaikinya untuk saya!
rayzinnz

1
Terima kasih, saya menghabiskan terlalu banyak waktu untuk mencoba mencari tahu apa masalahnya sampai saya menyadari bahwa saya mengetik spasi kosong di antara dua alamat IP yang berbeda.
Sandoval0992

5

Ini mungkin terjadi karena berbagai alasan

1) Periksa apakah Anda memiliki VPN yang terhubung, Anda mungkin mendapatkan kesalahan ini kadang-kadang jika ya

"Nama host Anda, localhost memutuskan ke alamat loopback: 127.0.0.1; menggunakan 10.xxx.1.193 sebagai gantinya (pada antarmuka cscotun0)"

2) Periksa $ HOSTNAME Anda

3) coba ping $ HOSTNAME pada commandline dan jika tidak berhasil, sesuaikan pengaturan sistem untuk membuat host lokal Anda merespons ping


5

Nama host Anda tidak ada. JBoss menggunakan variabel lingkungan ini ($ HOSTNAME) ketika terhubung ke server.

[root@xyz ~]# echo $HOSTNAME
xyz

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

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

Ada lusinan hal yang bisa menyebabkan hal ini. Beri komentar jika Anda menemukan alasan baru.

Untuk peretasan hingga Anda dapat menyelesaikan masalah ini secara permanen di server Anda, Anda dapat menambahkan baris di akhir file / etc / hosts:

127.0.0.1 xyz.xxx.xxx.edu xyz

Pemeliharaan preventif
MacGyver

4

Coba yang berikut ini:

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

Potong () URL


Memangkas string hard code tanpa spasi tidak masuk akal.
Blake McBride

1

Mencoba menyambung ke komputer lokal Anda. Coba dengan nama host "localhost" sebagai gantinya atau mungkin :: / - yang terakhir adalah ipv6


1

Silakan coba untuk mengatur variabel lingkungan SPARK_LOCAL_IP ke alamat ip (bisa localhost yaitu alamat ip Anda sendiri) yang ingin Anda hubungkan. Misalnya

$ export SPARK_LOCAL_IP=182.95.208.152

Dengan cara ini Anda tidak perlu mengubah pengaturan linux yang ada. Bekerja untuk saya, semoga bisa membantu Anda juga.


0

Hubungkan ponsel Anda dengan koneksi wifi yang berbeda dengan penyedia layanan yang berbeda . Saya tidak tahu masalah sebenarnya tetapi saya tidak dapat terhubung ke server dengan penyedia layanan tertentu tetapi berfungsi ketika saya terhubung ke penyedia layanan lain. Jadi cobalah!


0

Saya mengalami masalah ini di aplikasi android saya ketika mengambil file xml, format tautan saya tidak valid, saya memformat ulang dengan url lengkap dan berhasil.


0

Jika Anda berada di sini karena emulator memberi Anda Pengecualian tersebut, Buka Alat> AVD Manager di emulator android Anda dan Cold boot Emulator Anda.


-1

Jika file / etc / localhosts Anda memiliki entri seperti di bawah ini: Tambahkan entri nama host seperti di bawah ini:

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

Ini harus menyelesaikan masalah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.