java.net.UnknownHostException:server:local的主机名无效

Ash*_*wal 115 java

我应该采取哪些步骤来解决错误:

java.net.UnknownHostException: Invalid hostname for server: local
Run Code Online (Sandbox Code Playgroud)

我在Android模拟器中添加了新的虚拟主机名,但结果返回到

 java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
Run Code Online (Sandbox Code Playgroud)

当我在我的PC上键入我的虚拟主机URL时,它可以显示.然后,当我在Emulator上运行并检查Logcat时,如果200,202或错误代码编号,我无法读取或检查HTTP状态.它只是回到了UnknownHostException

Sho*_*uri 63

我的Mac上遇到了同样的问题.当我$HOSTNAME从终端ping我的时候,我发现了这个问题ping: cannot resolve myHostName: Unknown host.

解决:

  1. echo $HOSTNAME你的终端上.
  2. 无论它显示什么主机名(让我们说myHostName),试着ping它:ping myHostName.如果它返回,ping: cannot resolve myHostName: Unknown host则在您的/etc/hosts文件中添加一个条目.
  3. 对于该编辑/etc/hosts文件并添加以下内容:

    127.0.0.1 myHostName

希望能帮助到你.


And*_*zlo 62

真正的例外是,没有名为"local"的已知服务器.我的猜测是你正在尝试连接到本地计算机.请尝试使用主机名"localhost",或者127.0.0.1或者::1(或者最后一个是IPv6).

来自javadocs:

抛出表示无法确定主机的IP地址.

127.0.0.1或者::1或者"localhost"应该总是环回接口,所以如果这不起作用我真的会感到惊讶.

如果网络上确实存在名为"本地"的服务器 - 请检查DNS设置或将其添加到主机文件中.

  • 在某些实现中,显然需要重启 JVM 才能使网关/dns 更改生效。 (2认同)

Ash*_*Ash 16

java.net.UnknownHostException:主机未解析:

抛出表示无法确定主机的IP地址.

当您连接到有效的wifi但路由器没有接收互联网时,也会引发此异常.很容易重现这个:

  1. 连接到有效的wifi
  2. 现在,在插入路由器时,从路由器上拔下电缆

你会发现这个错误!!

你无法真正解决这个问题,你只能优雅地通知用户.(类似于 - "无法建立连接")

  • 你无法真正解决这个问题,你只能优雅地通知用户.(类似于 - "无法建立连接") (2认同)

mat*_*aly 6

这不是特定的问题,但是这个问题出现在我谷歌搜索提到的时候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)
    ... 
Run Code Online (Sandbox Code Playgroud)

无论我如何尝试连接到任何有效的主机,在终端上打印也无济于事.一切都是对的.

解决方案

不要求 trim() 包含空格的主机字符串.在编写代理服务器时,主机是从HTTP头中获取的,并使用split(":")分号作为HOST标头.这留下了空白,并导致UnknownHostException具有空格的主机不是有效的主机.做一个host = host.trim()String host解决了模棱两可的问题.


Sid*_*yap 5

这可能由于各种原因而发生

1)检查是否已连接VPN,如果是,有时可能会出现此错误

"您的主机名localhost解析为环回地址:127.0.0.1;使用10.xxx.1.193代替(在接口cscotun0上)"

2)检查您的$ HOSTNAME

3)尝试在命令行上ping $ HOSTNAME,如果它不起作用,调整系统设置以使本地主机响应ping


Mac*_*ver 5

您的主机名丢失了.JBoss在连接到服务器时使用此环境变量($ HOSTNAME).

[root@xyz ~]# echo $HOSTNAME
xyz

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

[root@xyz ~]# hostname -f
hostname: Unknown host
Run Code Online (Sandbox Code Playgroud)

有很多事情可以导致这种情况.如果您发现新原因,请发表评论.

对于hack,直到您可以在服务器上永久解决此问题,您可以在/ etc/hosts文件的末尾添加一行:

127.0.0.1 xyz.xxx.xxx.edu xyz
Run Code Online (Sandbox Code Playgroud)