一些cURL POST请求示例供自参考。
1.普通POST
1.1无需数据即可开机自检
$ curl -X POST http://localhost:8080/api/login/
1.2使用数据进行POST。
$ curl -d "username=mkyong&password=abc" http://localhost:8080/api/login/
1.3 Spring REST接受普通的POST数据。
@PostMapping("/api/login")
public ResponseEntity<?> login(@RequestParam("username") String username,
@RequestParam("password") String password) {
//...
}
@PostMapping("/api/login")
public ResponseEntity<?> login(@ModelAttribute Login login) {
//...
}
2. POST +多部分
要使用文件进行POST,请添加此-F file=@"path/to/data.txt"
2.1上传文件
$ curl -F file=@"path/to/data.txt" http://localhost:8080/api/upload/
2.2上载带有额外字段的多个文件:
$ curl -F extraField="abc" -F files=@"path/to/data.txt" -F files=@"path/to/data2.txt" http://localhost:8080/api/upload/multi/
2.3 Spring REST接受POST Multipart数据。
@PostMapping("/api/upload")
public ResponseEntity<?> uploadFile(
@RequestParam("file") MultipartFile uploadfile) {
//...
}
@PostMapping("/api/upload/multi")
public ResponseEntity<?> uploadFiles(
@RequestParam("extraField") String extraField,
@RequestParam("files") MultipartFile[] uploadfiles) {
//...
}
@PostMapping("/api/upload/multi2")
public ResponseEntity<?> uploadFiles2(
@ModelAttribute UploadModel model) {
//...
}
3. POST + JSON
要使用JSON数据进行POST,请添加此-H "Content-Type: application/json"
3.1在Windows上,转义双引号
c:\> curl -H "Content-Type: application/json" -X POST -d {\"username\":\"mkyong\",\"password\":\"abc\"} http://localhost:8080/api/login/
3.2对于* nix或Mac OSX,请添加单引号
$ curl -H "Content-Type: application/json" -X POST -d '{"username":"mkyong","password":"abc"}' http://localhost:8080/api/login/
3.3 Spring REST接受POST JSON数据。
@PostMapping("/api/login")
public ResponseEntity<?> login(@RequestBody Login login) {
//..
}