[使用Spring在RequestBody上使用CSV

问题描述 投票:2回答:1

我需要在请求中接收一个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?

java spring csv spring-boot spring-web
1个回答
0
投票

正如有人在评论中提到的,一种方法是实现自己的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
}
© www.soinside.com 2019 - 2024. All rights reserved.