环境配置以及基础服务搭建请参阅:http://blog.csdn.net/u012343179/article/details/73412249
常用的Http方法:Get和Post,可以基本满足日常应用。
Jersey中的GET使用:
User类定义:
package com.ma.unit;
/**
* Created by Administrator on 2017/6/25.
*/
public class User {
private String name;
private String password;
public void setName(String userName){
this.name=userName;
}
public void setPassword(String userPassword){
this.password=userPassword;
}
public String getName(){
return this.name;
}
public String getPassword(){
return this.password;
}
}
Web服务定义:
package com.ma.test;
import com.ma.unit.User;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
/**
* Created by Administrator on 2017/6/17.
*/
@Path("/register")//路径
public class Register{
@Path("/newuser")//路径
@GET//Get方法
@Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回
public String registerUser(@QueryParam("name")String name,@QueryParam("pass")String pass){
if(name==null || pass==null){
return "lack of parameter";
}
else{
User user=new User();
user.setName(name);
user.setPassword(pass);
//然后可以进行数据库插入该新用户的操作
//返回注册的结果
return "User:"+user.getName()+"register success!";
}
}
}
其中,@Produces代表接口返回的形式,@QueryParam代表
接收链接中的普通参数,例如name=mzw&pass=123,所以使用该方式在浏览器中输入,任何人可以轻易地知道你的pass参数(也就是你的密码),因此更加推荐使用POST方式。
我们运行Tomcat服务器,在地址栏中输入http://localhost:8080/api/register/newuser?name=mzw &pass=123
得到结果:
Jersey中的POST使用:
package com.ma.test;
import com.ma.unit.User;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
/**
* Created by Administrator on 2017/6/17.
*/
@Path("/register")//路径
public class Register{
@Path("/newuser")//路径
@POST//Post方法
@Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回
public String registerUser(@FormParam("name")String name,@FormParam("pass")String pass){
if(name==null || pass==null){
return "lack of parameter";
}
else{
User user=new User();
user.setName(name);
user.setPassword(pass);
//然后可以进行数据库插入该新用户的操作
//返回注册的结果
return "User:"+user.getName()+"register success!";
}
}
}
我们注意到,POST方式与GET方式主要的区别在于参数传输方式,GET是将参数附加在地址后面,而POST则是通过表单来传递参数(在jersey中是@FormParam)。
因为我们修改了代码,所以我们需要重新启动Tomcat。但我们注意到,在浏览器中我们并不能通过表单传递参数(因为我们没有相应的表单以及文本框),所以我们需要用到IntelliJ的 Test Restful Web Services。
单击Test RESTful Web Service,在界面的正下方是Rest Client(也就是IntelliJ用于测试Web Service的客户端)
在相应的地方选择或填入相应的参数,如下图:
其中Request Parameters就是表单参数,然后点击绿色三角图标进行测试。
最终得到测试结果。
就目前大部分的商用接口来看,都是采用POST方式的。
在我看来,GET方式适合用于一些简单的,安全要求不高的接口需求。
而POST适合传输参数较多,较复杂,安全要求较高的接口需求。
目前主流的参数交换方式是Json,因此接下去会研究一下在Web services中将结果以Json方式返回的相关内容。
只要有音乐,就不会有世界末日!
CommissarMa
2017年6月25日11:55:09