今天開發的時候, 爲了驗證數據, 想使用Postman批量插入多條數據到服務器中, 但是一直沒搜索到使用方法.
服務器的接口如下:
@RequestMapping("uploadFile")
public void uploadFile(@RequestPart("file") MultipartFile file, @RequestPart("jsonObject") JsonObject jsonObject) {
// ...
}
嘗試了很多辦法, 最後通過下面的辦法搞定. 有同樣需求的同學可以參考下.
設置的要點是:
1) Content-Type需要設置成undefined.
2) Body中的JsonObject也需要通過文件的方式上傳, 並且key的值和API的@RequestPart裏的value一致.
這裏想強調的是, 大家都知道MultipartFile file參數, 是通過在postman使用file上傳的. 但是和file一併通過@RequestPart的Json對象, 也是通過file的方式上傳的, 其他方式都不行.
文末附@RequestParam和@RequestPart的區別.
header設置:
body設置
轉載: 權威分析@RequestParam和@RequestPart 的區別(官方文檔)
https://yq.aliyun.com/articles/614605
@RequestPart
/**
* 單文件上傳
* @param file
* @param bucket
* @return
*/
@RequestMapping("uploadFile")
public JsonResult uploadFile(@RequestPart("file") MultipartFile file, @RequestParam String bucket){
String fileUrl = aliossService.uploadFile(file, bucket);
Map<String,String> result = new HashMap<>();
result.put("fileUrl",fileUrl);
return success(result);
}
@RequestParam
/**
* 上傳字符串
* @param stringFile
* @param bucket
* @return
*/
@RequestMapping("uploadStringFile")
public JsonResult uploadStringFile(@RequestParam("stringFile") String stringFile, @RequestParam("bucket") String bucket){
String fileUrl = aliossService.uploadStringFile(stringFile, bucket);
Map<String,String> result = new HashMap<>();
result.put("fileUrl",fileUrl);
return success(result);
}
二、比較一下他們的區別吧
@RequestPart
譯文:
1.@RequestPart這個註解用在multipart/form-data表單提交請求的方法上。
2.支持的請求方法的方式MultipartFile,屬於Spring的MultipartResolver類。這個請求是通過http協議傳輸的。
3.@RequestParam也同樣支持multipart/form-data請求。
4.他們最大的不同是,當請求方法的請求參數類型不再是String類型的時候。
5.@RequestParam適用於name-valueString類型的請求域,@RequestPart適用於複雜的請求域(像JSON,XML)。