《restful服务端及客户端开发》由会员分享,可在线阅读,更多相关《restful服务端及客户端开发(20页珍藏版)》请在金锄头文库上搜索。
1、Restful服务端及客户端调用实例1. 新建web工程作为服务端创建服务端代码前情提示:GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE):在服务器新建一个资源。PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。DELETE(DELETE):从服务器删除资源。2.服务端代码(每个方法前有注释,包括单参数,多参数,post,get方式的例子)package com.eviac.blog.restws; import javax.ws.rs.Consumes;import j
2、avax.ws.rs.DefaultValue;import javax.ws.rs.FormParam;import javax.ws.rs.GET; import javax.ws.rs.POST;import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import net.sf.json.JSONObject;import com.alibaba.fastjson.JSONArray;/* * * autho
3、r pavithra * */ / 这里Path定义了类的层次路径。 / 指定了资源类提供服务的URI路径。 Path(UserInfoService) public class UserInfo / GET表示方法会处理HTTP GET请求 GET / 这里Path定义了类的层次路径。指定了资源类提供服务的URI路径。 Path(/name/i) / Produces定义了资源类方法会生成的媒体类型。 Produces(MediaType.TEXT_XML) / PathParam向Path定义的表达式注入URI参数值。 public String userName(PathParam(i)
4、 String i) String name = i; return + + name + + ; GET / 这里Path定义了类的层次路径。指定了资源类提供服务的URI路径。 Path(/userinfo/id) / Produces定义了资源类方法会生成的媒体类型 /Consumes(MediaType.APPLICATION_JSON) /传json Produces(MediaType.APPLICATION_JSON) / PathParam向Path定义的表达式注入URI参数值。 public String userJson(PathParam(id) String id) /J
5、SONObject jobj=JSONObject.fromObject(id); /id=jobj.getString(id); return name:hanzl,age:1,id:+id+; /多参数测试 POST / 这里Path定义了类的层次路径。指定了资源类提供服务的URI路径。 Path(/user2info) / Produces定义了资源类方法会生成的媒体类型 /Consumes(MediaType.APPLICATION_JSON) /传json /多参数配置 Consumes( MediaType.MULTIPART_FORM_DATA,MediaType.APPLICA
6、TION_FORM_URLENCODED) Produces(MediaType.APPLICATION_JSON) /返回json / PathParam向Path定义的表达式注入URI参数值。 public String user2Json(FormParam(id) String id,FormParam(name) String name) System.out.println(id); System.out.println(name); return name:+name+,age:1,id:+id+; /多参数测试 参数为json POST / 这里Path定义了类的层次路径。指定
7、了资源类提供服务的URI路径。 Path(/user3info) / Produces定义了资源类方法会生成的媒体类型 /Consumes(MediaType.APPLICATION_JSON) /传json /多参数配置 Consumes( MediaType.MULTIPART_FORM_DATA,MediaType.APPLICATION_FORM_URLENCODED) Produces(MediaType.APPLICATION_JSON) /返回json / PathParam向Path定义的表达式注入URI参数值。 public String user3Json(FormPara
8、m(id) String id) System.out.println(id); return name:hanzl,age:1,id:+id+; GET Path(/age/j) Produces(MediaType.TEXT_XML) public String userAge(PathParam(j) int j) int age = j; return + + age + + ; 3.配置服务端web.xml(restful接口发布地址)在web.xml中加入如下配置 Jersey REST Service com.sun.jersey.spi.container.servlet.Se
9、rvletContainer com.sun.jersey.config.property.packages com.eviac.blog.restws 1 Jersey REST Service /rest/* 4.编写客户端代码4.1新建java工程来进行服务端的第一次调用:package com.eviac.blog.restclient; import javax.ws.rs.core.MediaType; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse;
10、import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; /* * * author pavithra * */ public class UserInfoClient public static final String BASE_URI = http:/localhost:8080/RestflService; public st
11、atic final String PATH_NAME = /UserInfoService/name/; public static final String PATH_AGE = /UserInfoService/age/; public static void main(String args) String name = Pavithra; int age = 25; ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); WebResource resource = client.resource(BASE_URI); WebResource nameResource = resource.path(rest).path(PATH_NAME + name); System.out.println(Client Response n + g