利用jersey实现IP查询的js调用接口

      这几天一直在学习restful web services,感觉很棒,相对于之前的SOAP方式,它不仅大大缩短了我们程序员的学习周期,而且使用简单,功能强大,于是萌生了用它来实现IP查询的web services服务,可供有需要的朋友直接通过js方式进行调用的想法。因为之前曾经有朋友提到,他的客户要求实现通过来访者的IP定位地图然后查询附近的店铺,他精通页面制作,对js也比较熟悉,但却对java、dot net等不熟悉,也不想花太多的时间去学习,所以问我能不能提供js方法给他,现在终于找到解决的方法了。

      通过jersey的API得知其pojo类的方法返回的值有很多种类型,其中就包括xml和json,而这两种类型,很多js的框架都有很好的支持,有直接的方法对返回的xml,json格式的字符串进行格式化成相应的对象,在此我选择了json格式,下面说说实现的过程。

      首先,需要在方法增加这样的注解,@Produces(MediaType.APPLICATION_JSON),方法体里实现通过IP地址获取对应的信息,如国家、省份、经度、纬度等,方法返回的则是JSONObject对象,代码片段如下:

         @GET
         @Produces(MediaType.APPLICATION_JSON)
         public JSONObject getIpInfoByIpOrHost(@Context HttpServletRequest request){

                   JSONObject myObject = new JSONObject();

                   myObject.put("countryCode","");

                   ......

         }

       然后在页面利用js框架jquery.js和json2.js进行调用

       jQuery.ajax({
           type: "GET",
           url: '<%=path%>/services/ip',
           data: "ip="+ip+"&userId="+userId,
           success: function(data) {
               var myObject = JSON.parse(data);
           }
       });

 

 

       由于我的服务已经发布到互联网,所以如果其他朋友需要在自己的网站进行调用的话,可以直接把上面的url改成我服务的链接即就可,服务的链接为:http://www.jackshow.net/,方法调用参数有二个,一个是待查询的IP,一个是userId(有需要调用的朋友可以联系我,我分配一个用户帐户即可调用)。返回结果包括:

        国家代号(英):countryCode       

        国家名称(英):countryName
        省份(英): province        

        城市(英):city
        时区(英):timeZone       

        经度:jingdu
        纬度:weidu

        省份城市(纯真):chunZhenCountry

        位置(纯真):chunZhenLocation

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值