簡體   English   中英

Spring rest controller 與@RequestBody 和@RequestParam

[英]Spring rest controller with @RequestBody and @RequestParam

嗨,我正在嘗試實現一個 rest post 方法,它將一個文件作為參數,json 主體和一些其他細節,下面是方法語法:

@PostMapping(path = "/v1/cust-advice", produces = "application/json")
public ResponseEntity<ResponseMessage> uploadFile(@RequestBody CustomerData custData,
        @RequestParam("file") MultipartFile file) {

這可以在 spring 中完成嗎,如果可以,我如何使用 postman 調用此方法。我試過但得到錯誤:當前請求不是多部分請求

正如@M.Deinum 所建議的那樣,您不能將文件作為“參數”發送。 文件作為多部分正文的一部分發送,因此@RequestBody將包括包括文件在內的所有內容(所有部分)。

相反,您可以使用@RequestPart將 JSON 和文件聲明為單獨的“部分”:

@PostMapping(value = "/upload", consumes = { "multipart/form-data" }, produces = "application/json")
public void upload(@RequestPart(name = "file", required = true) MultipartFile file,
        @RequestPart(name = "data", required = true) CustomerData data) {

注意@PostMapping consumes和兩個“部分”的name

在 Postman select “正文”下的“表單數據”中。 添加兩個與@RequestPart同名的條目(在本例中為“文件”和“數據”)。 在鍵列(有點隱藏)中有一個選擇器,您可以在其中選擇“文件”和“文本”。 當您選擇“文件”時,文件選擇器會出現在值列中。 將 JSON 粘貼到“數據”行的值列中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM