使用Spring在RequestBody上实现java CSV
我需要收到一个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]
Spring说我的请求在其他任何事情之前都是无效的
因此,问题是:如何正确接收此csv
# 1 楼答案
正如有人在评论中提到的,一种方法是实现您自己的HttpMessageConverter——在web上有不同质量的示例
如果您已经有了一些使用Spring的
org.springframework.core.io.Resource
类解析CSV的代码,那么另一个选项是如下更改方法签名以使用Spring的内置ResourceHttpMessageConverter
: