WebService IP 地址查询详细步骤

还是老套路上http://fhs.6617.com/getip.asmx?WSDL查看这个对外界提供的查询ip地址的webservice的描述

 

     

- < s:element name =" GetIPLocation ">
- < s:complexType >
- < s:sequence >
  < s:element minOccurs =" 0 " maxOccurs =" 1 " name =" ipaddress " type =" s:string " />
  </ s:sequence >
  </ s:complexType >
  </ s:element >
通过wsdl文档的这段描述我们可以知道 这个webservice  对外提供了一个GetIPLocation()的方法,它接受一个String类型的变量
- < s:element name =" GetIPLocationResponse ">
- < s:complexType >
- < s:sequence >
  < s:element minOccurs =" 0 " maxOccurs =" 1 " name =" GetIPLocationResult " type =" tns:ArrayOfAnyType " />
  </ s:sequence >
  </ s:complexType >
  </ s:element >
通过这段wsdl文档的描述,我们知道 GetIPLocation()的返回值是一个数组,一个对象数组,我们可以构造一个对象数组来接收返回的ip地址查询结果
知道这些信息以后 我们就可以使用axis框架的 wsdl2java 工具将这个wsdl文档生成本地java类的框架,方式有2种,看我的 webservice 天气预报 这篇blog,然后我们就可以使用这些java类了,按照 Stubs 的开发步骤:
1.通过new得到 locator 对象
2.利用local对象的某个方法得到service对象
3.利用service对象调用其中暴露的方法GetIPLocation(),传递查询参数
4.用一个Object[] o 来接受查询结果
通过观察 wsdl2java  为我们生长的java本地类,找到其中的继承,接口等关系 我们按照上述步骤,写一个测试
package com._6617.fhs.IPService;

import java.net.InetAddress;
import java.util.Properties;

/**
 * 测试ip地址
 * @author Owner
 *
 */
public class Client5
{
  public static void main(String[] args)
  {
   try
   { 
	   Weather_x0020_WebServiceLocator locator= new Weather_x0020_WebServiceLocator();
       Weather_x0020_WebServiceSoap service=locator.getWeather_x0020_WebServiceSoap12();
   
     Object[] o=service.getIPLocation("117.33.53.33");
	for(int i=0;i<o.length;i++)
	{	
		System.out.println((String)o[i]);
	}
   
   }
   catch(Exception e)
   {
     e.printStackTrace();
   }
  }
}
 
运行程序 将打印:
陕西省宝鸡市
电信
注意:
如果你的环境使用了代理上网,那么在远程调用webservice之前 ,你应该设置代理服务器地址到系统属性下,在java中设置使用代理连接的代码是:
    
   
   
//加入代理地址为172.100.1.28,端口8080
   Properties prop = System.getProperties();     
   prop.put("http.proxyHost","172.100.1.28");    
   prop.put("http.proxyPort","8080");
   System.setProperties(prop);
 
把上述代码放在 测试类的 try{} 的第一句即可
我把这个查询IP地址的 WebServie 和 查询 天气预报的 WebService  放在一个页面展示 结果如下:(你可以仿照我的上一篇blog 来做这个web例子)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值