这几天一直在学习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
分享到:
相关推荐
jersey实现简单的rest接口 返回json数据
NULL 博文链接:https://lsz1023-126-com.iteye.com/blog/2065472
通过jetty+jersey动态发布rest接口及接口调用
java项目REST方式使用Jersey技术实现webservice远程调用,内附使用说明文档和Jersey包,方便学习和查阅,最重要的是我的资源优势就是物美价廉哟~~
oauth jersey实现例子,和文档介绍。111
基于rest的jersey的webservice 包含mvc设计模式 单例模式 工厂模式
jersey构建简单的Restful服务!
java利用Jersey框架实现restful 网络接口
本人亲测试,没有问题。实现spring4.x 和jersey2.2x 集成实现对外提供服务
在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用
使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。
在学习了一段时间的jersey后,感觉其中根据url自动调用对应类中的对应方法的思想很叼。于是思考它是怎么实现的,自己试着写了一份代码。 代码支持: 1. 根据字符串路径(/Test/add)调用对应资源方法 2. 支持从某一...
maven +Jersey Restful实现源码
jersey的使用简单实例
Jersey用户手册,开放Rest接口还是不错的,英文版手册,希望对大家有帮助! 虽然大家现在用SpringBoot比较多啦,:)
基于maven构建的jersey示例,通过ajax调用的完整测试。
Jersey和Tomcat构建RESTfulWebService及其调用[归纳].pdf
包含用Jersey框架来实现文件上传下载的文档及案例。
代码来自互联网,经过整理测试可用;大家注意里面的说明文档