项目中通过webservice接口往第三方传送数据,本地配置是第三方给的域名,调用接口时报:
java.net.UnknownHostException: XXXX.XXXX.com
.....
导致调用第三方接口一直失败。
在网上查资料,原因如下:
在host文件里面主机名和本地循环地址没有匹配到,故报错。
解决方案:
(1)需要在hosts文件中添加上该域名的解析ip地址。windows服务器配置如下:
打开windws/system32/driver/etc/hosts,添加以下内容:[color=red][b]域名的解析ip 域名[/b][/color]
(2)使用java中的etAddress中的getByName方法可以通过传入的字符串(域名)字段获取到"域名/IP"的值,再通过getHostAddress()方法可以获得IP地址。
方法一:[b]只获取域名下的一个ip地址(第一个)[/b]
方法二:[b]获取域名下的所有ip地址[/b]
java.net.UnknownHostException: XXXX.XXXX.com
.....
导致调用第三方接口一直失败。
在网上查资料,原因如下:
在host文件里面主机名和本地循环地址没有匹配到,故报错。
解决方案:
(1)需要在hosts文件中添加上该域名的解析ip地址。windows服务器配置如下:
打开windws/system32/driver/etc/hosts,添加以下内容:[color=red][b]域名的解析ip 域名[/b][/color]
(2)使用java中的etAddress中的getByName方法可以通过传入的字符串(域名)字段获取到"域名/IP"的值,再通过getHostAddress()方法可以获得IP地址。
方法一:[b]只获取域名下的一个ip地址(第一个)[/b]
InetAddress address = null;
try {
String name = "www.baidu.com";
address = InetAddress.getByName(name);
} catch (UnknownHostException e) {
e.printStackTrace();
}
System.out.println("ip: " + address.getHostAddress().toString());
方法二:[b]获取域名下的所有ip地址[/b]
InetAddress[] addresses;
try {
String name = "www.baidu.com";
addresses = InetAddress.getAllByName(name);
System.out.println(addresses.length);
for (InetAddress addr : addresses) {
System.out.println(addr);
}
} catch (UnknownHostException e) {
e.printStackTrace();
}