POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。
举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的
提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。
具体用哪个还取决于当前的业务场景。
DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
接下来,我们用代码简单举例说明一下,当然了,在这里我们都采取直接打印请求参数
的方式来进行简单的编码测试
1,首先是 POST 请求接口:
package com.fxbin123.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: fxbin
* Date: 2018/5/23
* Time: 22:16
* Description:
*/
@RestController
public class PostController {
private final Map<String, Object> params = new HashMap<String, Object>();
/**
* 功能描述:测试Post请求
* @param username
* @param password
* @return
*/
@PostMapping("/login")
public Object login(String username, String password){
params.clear();
params.put("username", username);
params.put("password", password);
return params;
}
}
测试结果如下:
2,PUT 请求方式
package com.fxbin123.controller;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: fxbin
* Date: 2018/5/23
* Time: 22:22
* Description:
*/
@RestController
public class PutController {
private final Map<String, Object> params = new HashMap<String, Object>();
@PutMapping("/put")
public Object put(String id){
params.clear();
params.put("id", id);
return params;
}
}
接口测试结果:
3.DELETE 接口测试:
package com.fxbin123.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: fxbin
* Date: 2018/5/23
* Time: 22:24
* Description:
*/
@RestController
public class DeleteController {
private final Map<String, Object> params = new HashMap<String, Object>();
@DeleteMapping("/v1/del")
public Object del(String id){
params.clear();
params.put("id", id);
return params;
}
}
delete 接口测试结果