Spring-boot Rest API当前请求不是邮递员的多部分请求

时间:2019-04-26 15:50:39

标签: java rest api spring-boot

在使用Spring引导应用程序中的Postman调用API时遇到问题。

错误Current request is not a multipart request

邮递员: Postman screen shot 其他大多数帖子都是通过删除标题来解决的,这不是我的工作。

这是我的控制器:

@Controller
public class RestController {

    @GetMapping("/upload/remote")
    public ResponseEntity<?> handleFileUploadRemote(@RequestParam("file") MultipartFile file) {
        return null;
    }

}

这仅出于测试目的而返回null。

我也尝试过将其保留为@RequestMapping("/upload/remote")。 关于这里可能出什么问题的任何想法?我遗漏了很多逻辑来测试此错误。

更新1: 我尝试使用RequestPart("file")代替RequestParam("file"),并通过上述更改将GetMapping转换为RequestMappingPostMapping。我仍然遇到相同的错误,但是,通过PostMapping,我得到以下信息:Request method 'GET' not supported

编辑: 这是我单击邮递员中的“代码”选项后看到的代码:

POST /upload/remote HTTP/1.1
Host: localhost
cache-control: no-cache
Postman-Token: 30b67342-6e38-4f2e-8335-fb118d28bf50
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="file"; filename="C:\settings.xml


------WebKitFormBoundary7MA4YWxkTrZu0gW--

2 个答案:

答案 0 :(得分:0)

尝试使用@RequestPart代替@RequestParam,通常这种方法是POST。因此,尝试使用

@PostMapping("/upload/remote")
    public ResponseEntity<?> handleFileUploadRemote(@RequestPart("file") MultipartFile file) {
        return null;
    }

答案 1 :(得分:0)

我的解决方案:

@RequestMapping(value = ""/upload/remote"", method = RequestMethod.POST)
public void fileUplaod(MultipartFile file, HttpServletRequest request) {

    return null;
}