Java 如何在SpringWebServlet中接受文本/csv作为内容类型?

Java 如何在SpringWebServlet中接受文本/csv作为内容类型?,java,spring,spring-rest,spring-web,Java,Spring,Spring Rest,Spring Web,我想创建一个简单的Web服务来生成text/csv内容。但我不能要求: @RestController public class MyServlet { @PostMapping(produces = {"text/csv", "application/json"}) public Object post() { //... } } spring.mvc.contentnegotiation.media-types.csv=text/csv 当我发送一

我想创建一个简单的Web服务来生成
text/csv
内容。但我不能要求:

@RestController
public class MyServlet {
    @PostMapping(produces = {"text/csv", "application/json"})
    public Object post() {
        //...
    }
}

spring.mvc.contentnegotiation.media-types.csv=text/csv
当我发送一个以
内容类型:text/csv
作为http头的post请求时,我收到以下错误:

415:
不支持内容类型“text/csv”

这是我的配置:

@Configuration
public class ContentNegotiationConfiguration implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer
                .favorParameter(true) //favor &format=csv
                .defaultContentType(MediaType.APPLICATION_JSON)
                .parameterName(format);
                //.mediaType("csv", new MediaType("text", "csv")) //also tried without success
    }
}

如果您(客户端)希望使用csv内容,客户端应将
text/csv
作为
Accept
标题而不是
content-Type

传递。为了清楚起见,您想为您的用户生成一个csv文件吗?您是否尝试过添加
consumes=“text/csv”
?它是消费者而不是生产者吗,
消耗
用于从用户接收数据。但是我的用户没有发送任何东西,所以这里忽略consumes。我想生成一个csv文件。@mohammedkhan它不是重复的。特别是我希望内容协商已经选择了正确的响应内容类型,如上所述。查询参数
&format=csv
,因此应生成
文本/csv
,如
应用程序.properties
中所配置。