我需要在请求中接收一个csv文件并对其进行处理。
@PostMapping(value = "/csv", consumes = "text/csv")
public ViewObject postCsv(@RequestBody InputStream request){
// do stuff
}
但是执行时:
curl -X POST -H 'Content-Type: text/csv' -d @input.csv http://localhost:8080/csv
这是我的控制台上显示的内容:
Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/csv;charset=UTF-8' not supported]
春天说我的要求无效。
所以,问题是:如何正确接收此csv?
正如有人在评论中提到的,一种方法是实现自己的HttpMessageConverter-网络上有质量不一的示例。
[如果您已经有一些使用Spring的org.springframework.core.io.Resource
类解析CSV的代码,另一种选择是如下更改方法签名以使用Spring的内置ResourceHttpMessageConverter
:
@PostMapping(path = "/csv", consumes = "application/octet-stream")
public ViewObject postCsv(@RequestBody Resource resource){
// do stuff
}