java.net.UnknownHostException:服务器的主机名无效:本地
我应该采取哪些步骤来解决错误:java.net.UnknownHostException:服务器的主机名无效:本地,java,Java,我应该采取哪些步骤来解决错误: java.net.UnknownHostException: Invalid hostname for server: local 我在Android emulator中添加了新的虚拟主机名,但结果返回到 java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName(InetAddress.java:506) 当我在电脑上键入virtualh
java.net.UnknownHostException: Invalid hostname for server: local
我在Android emulator中添加了新的虚拟主机名,但结果返回到
java.net.UnknownHostException virtualhostname at
java.net.InetAddress.lookUpHostByName(InetAddress.java:506)
当我在电脑上键入virtualhost URL时,它会在屏幕上工作。然后,当我在Emulator上运行并检查Logcat时,我无法读取或检查HTTP状态(如果是200、202或错误代码)。它只是简单地返回到UnknownHostException异常的真正含义是没有名为“local”的已知服务器。我猜您正在尝试连接到本地计算机。尝试使用主机名
“localhost”
,或者127.0.0.1
或::1
(最后一个是IPv6)
从:
抛出以指示IP地址
无法确定主机的名称
127.0.0.1
或::1
或“localhost”
应该始终是环回接口,因此如果这不起作用,我会非常惊讶
如果网络上确实有一个名为“本地”的服务器,请检查DNS设置或将其添加到主机文件中
java.net.UnknownHostException:主机未解析:
抛出以指示无法确定主机的IP地址
当您连接到有效的wifi但路由器未接收到internet时,也会引发此异常。这很容易复制:
你不能真正解决这个问题,你只能优雅地通知用户。(类似于“无法建立连接”)尝试连接到本地计算机。请改用主机名“localhost”或::/-最后一个是ipv6这可能是由于各种原因造成的 1) 检查是否已连接VPN,如果是,有时可能会出现此错误 您的主机名localhost解析为环回地址:127.0.0.1;改为使用10.xxx.1.193(在接口cscotun0上) 2) 检查您的$HOSTNAME
3) 尝试在命令行上ping$HOSTNAME,如果它不起作用,请调整系统设置,使您的本地主机响应ping我在mac上遇到了相同的问题。我从终端ping我的
$HOSTNAME
时发现了问题,它返回ping:cannotresolve myHostName:Unknown host
解决:
myHostName
),尝试ping它:pingmyhostname
。如果返回ping:cannotresolve myHostName:Unknown host
,则在/etc/hosts
文件中添加一个条目/etc/hosts
文件并添加以下内容:
127.0.0.1我的主机名
希望能有所帮助。这不是问题的具体内容,但当我在谷歌上搜索所提到的
未知后异常时,这个问题出现了,而且在其他任何地方都找不到修复程序,所以我想在这里添加一个答案
持续收到的例外情况是:
java.net.UnknownHostException:google.com
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于java.net.Socket.connect(Socket.java:538)
位于java.net.Socket。(Socket.java:434)
位于java.net.Socket。(Socket.java:211)
...
无论我如何尝试连接到任何有效的主机,在终端中打印也不会有帮助。一切都是对的
解决方案
不为包含空格的主机字符串调用trim()
。在编写代理服务器时,主机是通过使用主机头的分号拆分(“:”
)从HTTP头中获取的。这会留下空白,并导致UnknownHostException
,因为带有空白的主机不是有效的主机。在字符串主机上执行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
请尝试将SPARK_LOCAL_IP环境变量设置为要连接的IP地址(可以是本地主机,即您自己的IP地址)。例如
$export SPARK\u LOCAL\u IP=182.95.208.152
这样,您就不需要更改现有的linux设置。
为我工作,希望对您也有帮助。如果您的/etc/localhosts文件包含以下条目:
添加主机名条目,如下所示:
127.0.0.1 local host (add your hostname here)
::1 (add hostname here) (the last one is IPv6).
这将解决问题。请尝试以下操作:
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);
修剪()URL使用不同的wifi连接与不同的服务提供商连接您的手机。
我不知道确切的问题,但我无法连接到服务器与特定的服务提供商,但它的工作时,我连接到其他服务提供商。那就试试吧 我的android应用程序在抓取xml文件时遇到了这个问题。我的链接格式无效,我用完整的url重新格式化,它成功了。如果你在这里是因为你的模拟器给了你这个例外,进入android仿真器中的工具>AVD管理器并冷启动仿真器。更多信息将帮助我们轻松解决问题。您是否在代理服务器后面并配置了代理设置?如果是这样,您可能需要排除localhost和其他不需要代理服务器帮助解析为有效IP地址的主机
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);