java - ResponseEntity 不接受文本/csv : SpringBoot

标签 java spring-boot

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

端点如下所示。

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



    }

内容 header 是通过 postman 设置的。

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]

我该如何解决这个问题?

最佳答案

写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 中将内容类型设置为正文中的表单数据,例如

enter image description here

关于java - ResponseEntity 不接受文本/csv : SpringBoot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66601497/

相关文章:

java - RestTemplate 消耗 Json 字符串

java - Spring @Scheduled 计时器精度

java - 如何在 AuditorAware 中获取 Keycloak 用户名

java - eventsource-android 从 Flux 服务器端点返回空数据字符串

java - Swift 3.0 中的 FileHandle 和 java 中的 FileInputStream 的区别

Java ArrayList,最终条目作为类属性

java - 二进制数字提升的逻辑

java - Swagger未获取PathVariable

ssl - 如何为 Heroku 上的 Spring Boot 应用程序强制使用 HTTPS?

java - 编译 : invalid target release: 1. 8 -> [帮助 1] 的 fatal error