原文链接:https://blog.csdn.net/qq_39390545/article/details/108755289

以下为复盘学习笔记

UnknownHostException 一般原因

1、服务器没网,调不到公网域名,无法解析出IP,从而无法识别host,导致无法连接;
2、网络端口映射做了策略,调用不到自己路由的域名,必须调内网IP;


常见场景

即使服务器没网,单点登录服务在同一个内网,那么网络也是通的。但是需要 Web服务器 配置 域名/IP的映射关系,需要在hosts文件中把接口的 IP/域名 写上,在服务器发送求时,就会 自动把域名转成IP 进行调用了。


解决步骤

以CSDN的域名为例(www.csdn.net)

第1步:用有互联网的机器 win+rcmd 进入dos窗口

第2步:执行 nslookup www.csdn.net 命令,获取www.csdn.net域名对应的IP

C:\Users\zhang>nslookup www.csdn.net服务器:public1.114dns.comAddress:114.114.114.114非权威应答:名称:55cb88f4.csdn.net.cname.yunduns.comAddress:123.129.227.28Aliases:www.csdn.net

第3步:打开hosts文件
Windows:一般在C:\Windows\System32\drivers\etc\hosts
Linux:一般在/etc/hosts

第4步:修改hosts文件,把域名和IP写到hosts文件中,用于把域名解析成IP

第5步:执行ipconfig/flushdns 清除DNS缓存

第6步:完成,这样就可以调到CSDN域名下的接口了。如https://www.csdn.net/xxx/login