Java 如何在SpringWebServlet中接受文本/csv作为内容类型?
我想创建一个简单的Web服务来生成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 当我发送一
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
中所配置。