首页 > 解决方案 > ResponseEntity 不接受文本/csv:SpringBoot

问题描述

我正在尝试创建一个接受 CSV 和 json 正文请求等文件的 API。我尝试ResponseEntity在 Spring Boot 中使用对象。

端点如下所示。

    @PostMapping(value="/csv",consumes=MediaType.ALL_VALUE)
    public void createConsumer(RequestEntity<?> data){



    }

内容标题是通过邮递员设置的。

Content-Typetext/csvAccept*/*。_

抛出的错误是

2021-03-12 19:28:10.344  WARN 5780 --- [nio-8089-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/csv' not supported]

我该如何解决这个问题?

标签: javaspring-boot

解决方案


写2个方法。如果您使用文件作为请求正文,请使用 MulpartFile 和相应的 'consumes=..',对于 json 使用 @RequestBody:

  @PostMapping(value="/csv", consumes = MULTIPART_FORM_DATA_VALUE)
        public void createConsumer(@RequestParam MultipartFile file){
          
        }

@PostMapping(value="/csv", consumes = APPLICATION_JSON_VALUE)
        public void createConsumerFromJson(@RequestBody SomeObject json){
          
        }

在 Postman for MultipartFile 中将内容类型设置为正文中的表单数据,例如

在此处输入图像描述


推荐阅读