【问题标题】:ResponseEntity doesnot accept text/csv: SpringBootResponseEntity 不接受文本/csv:Spring Boot
【发布时间】:2021-03-12 14:11:20
【问题描述】:

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

端点如下所示。

    @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]

我该如何解决这个问题?

【问题讨论】:

  • @deadshot 它对我不起作用。我已经设置了Content-Typetext/csvAccept*/*
  • 您是在上传文件还是将 CSV 和/或 JSON 数据作为请求正文发布。你的问题建议第一个,你的代码第二个(显然它不会工作)。

标签: java spring-boot


【解决方案1】:

写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 中为 MultipartFile 设置内容类型为 form-data,比如

【讨论】:

  • 但问题是我想接受正文中的json等数据以及文件类型数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多