inetAddress.getByName(address)unknownhostexception

时间:2018-03-18 23:05:39

标签: java inetaddress unknown-host

getByName是否适用于包含https://stackoverflow.com/questions之类路径的链接,或者链接是否必须仅包含主机(https://stackoverflow.com)?

当我使用包含“/”的链接时,我会收到unknownHostException,有关如何解决该问题的提示吗?

控制台说错误在于:

            socket = new Socket(InetAddress.getByName(adr), port);

提前致谢,对不好的英语感到抱歉,因为这不是我的第一语言。

1 个答案:

答案 0 :(得分:5)

InetAddress.getByName查找名称(通常在DNS中)并返回相应的地址。

没有主持人叫" https://stackoverflow.com/questions"所以抛出一个UnknownHostException 没有主持人称为" https://stackoverflow.com"无论是。
在此特定示例中,主机名是" stackoverflow.com"。

如果您要解析网址(例如" https://stackoverflow.com/questions")以获取主机名,则可以使用java.net.URL类:

String hostname = new URL("https://stackoverflow.com/questions").getHost();
System.out.println(hostname); // stackoverflow.com