这里先给出一个webservice的免费接口。用于查询ip地址所在地
http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl
我们先通过浏览器访问。找到头部的一个链接。
targetNamespace="http://WebXml.com.cn/"
还有对应的service接口名称。
<wsdl:service name="IpAddressSearchWebService">
这里我用的是idea。所以直接通过tools里面WebServices直接生成接口那些文件。
接着来了!直接调用。
//在这里输入接口链接。
URL url=new URL("http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl");
//Qname里面就需要填写我们一开始找的2个东西。第一个输入namespaceurl。第二个输入service名称。
QName qName=new QName("http://WebXml.com.cn/","IpAddressSearchWebService");
//这里直接创建连接。
Service service=Service.create(url,qName);
//调用这个service里面的方法。
IpAddressSearchWebServiceSoap port = service.getPort(IpAddressSearchWebServiceSoap.class);
//返回的是ArrayOfString。但是我们可以直接toString转成list。调用方法括号内填入你要查询的iP地址
ArrayOfString countryCityByIp = port.getCountryCityByIp("123.2.2.3");
//转化 + 遍历
List<String> list = countryCityByIp.getString();
Object[] object = list.toArray();
for (Object o : object) {
System.out.println(o);
}
结果是:
123.2.2.3
澳大利亚