![](/img/trans.png)
[英]java.net.UnknownHostException: <<hostname>> : unknown error
[英]java.net.UnknownHostException: Invalid hostname for server: local
我應該采取哪些步驟來解決錯誤:
java.net.UnknownHostException: Invalid hostname for server: local
我在 Android 模擬器上添加了新的虛擬主機名,但結果返回
java.net.UnknownHostException virtualhostname at
java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
當我在我的 PC 上鍵入我的虛擬主機 URL 時,它會顯示。 再說一次,當我在 Emulator 上運行並檢查 Logcat 時,如果 200、202 或錯誤代碼號,我無法讀取或檢查 HTTP 狀態。 它只是返回到UnknownHostException
我在我的mac上遇到了同樣的問題。 當我從終端 ping 我的$HOSTNAME
並返回ping: cannot resolve myHostName: Unknown host
時,我發現了這個問題。
解決:
在您的終端上echo $HOSTNAME
。
無論它顯示什么主機名(比如說myHostName
),嘗試 ping 它: ping myHostName
。 如果它返回ping: cannot resolve myHostName: Unknown host
然后在/etc/hosts
文件中添加一個條目。
對於該編輯/etc/hosts
文件並添加以下內容:
127.0.0.1 myHostName
真正的例外是沒有名稱為“本地”的已知服務器。 我的猜測是您正在嘗試連接到本地計算機。 嘗試使用主機名"localhost"
,或者可能是127.0.0.1
或::1
(最后一個是 IPv6)。
從javadocs :
拋出表示無法確定主機的 IP 地址。
127.0.0.1
或::1
或"localhost"
應該始終是環回接口,所以如果這不起作用,我會感到非常驚訝。
如果您的網絡上確實有一個名為“本地”的服務器 - 檢查您的 DNS 設置或將其添加到您的主機文件中。
java.net.UnknownHostException:主機未解析:
拋出表示無法確定主機的 IP 地址。
當您連接到有效的 wifi 但路由器沒有接收到互聯網時,也會引發此異常。 很容易重現這個:
你會看到這個錯誤!!
你無法真正解決這個問題,你只能優雅地通知用戶。 (類似於 - “無法建立連接”)
這不是特定於問題的,但是當我在谷歌搜索提到的UnknownHostException
時出現了這個問題,並且在其他任何地方都找不到修復程序,所以我想我會在這里添加一個答案。
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)
...
無論我如何嘗試連接到任何有效的主機,在終端中打印它也無濟於事。 一切都是正確的。
不為包含空格的主機字符串調用trim()
。 在編寫代理服務器時,主機是從 HTTP 標頭中獲取的,並使用分號作為HOST
標頭使用split(":")
。 這留下了空格,並導致UnknownHostException
作為具有空格的主機不是有效的主機。 在String host
上執行host = host.trim()
解決了模棱兩可的問題。
缺少您的主機名。 JBoss 在連接到服務器時使用這個環境變量 ($HOSTNAME)。
[root@xyz ~]# echo $HOSTNAME
xyz
[root@xyz ~]# ping $HOSTNAME
ping: unknown host xyz
[root@xyz ~]# hostname -f
hostname: Unknown host
有很多事情可以導致這種情況。 如果您發現新的原因,請發表評論。
在您可以在服務器上永久解決此問題之前,您可以在 /etc/hosts 文件的末尾添加一行:
127.0.0.1 xyz.xxx.xxx.edu xyz
這可能由於各種原因而發生
1)檢查您是否連接了VPN,如果是,您有時可能會收到此錯誤
“您的主機名 localhost 解析為環回地址:127.0.0.1;使用 10.xxx.1.193 代替(在接口 cscotun0 上)”
2) 檢查您的 $HOSTNAME
3) 嘗試在命令行上 ping $HOSTNAME,如果它不起作用,請調整系統設置以使您的本地主機響應 ping
嘗試以下操作:
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);
修剪()網址
嘗試連接到您的本地計算機。嘗試使用主機名“localhost”或者 ::/ - 最后一個是 ipv6
請嘗試將 SPARK_LOCAL_IP 環境變量設置為您要連接的 IP 地址(可以是 localhost 即您自己的 IP 地址)。 例如
$ export SPARK_LOCAL_IP=182.95.208.152
這樣您就不需要更改現有的 linux 設置。 為我工作,希望對你也有幫助。
將您的手機與不同服務提供商的不同wifi連接連接起來。 我不知道確切的問題,但我無法連接到具有特定服務提供商的服務器,但是當我連接到其他服務提供商時它可以工作。 所以試試吧!
抓取 xml 文件時,我的 android 應用程序中遇到了這個問題,我的鏈接格式無效,我用完整的 url 重新格式化,它工作了。
如果您在這里是因為您的模擬器為您提供了該異常,請轉到您的 android 模擬器中的工具 > AVD 管理器並冷啟動您的模擬器。
我遇到過同樣的問題。
重新啟動 docker 對我來說是解決方法。 出於某種原因,它需要重新啟動,我不知道為什么,但它起作用了。
如果您的 /etc/localhosts 文件有如下條目: 添加主機名條目如下:
127.0.0.1 local host (add your hostname here)
::1 (add hostname here) (the last one is IPv6).
這應該可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.