为什么spring @PostMapping @Requestbody以转义字符的形式出现?

时间:2019-04-04 17:47:53

标签: spring curl post

我有这个spring boot controller方法:

@PostMapping(path = "/myPath")
public String methodName(@RequestBody String incoming) { ... 

但是,如果我尝试使用curl将XML文件发布到该文件,例如:

curl -X POST http://localhost:8080/myPath --data-binary @./my/path/my_file.xml

传入的String都是转义字符,例如:

%3C%3Fxml+version=%221.0%22+encoding%3D%22UTF-8%...

并且尝试用...Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.解析它会炸毁

什么时候应该像<?xml version="1.0"一样发生了什么事?

1 个答案:

答案 0 :(得分:0)

仍然没有发生什么,但是添加了curl --header "Content-Type:text/xml"来解决它。我猜默认是application/x-www-form-urlencoded,上面的内容覆盖了它,是necessary,不知道为什么,也许Web框架假设需要一些额外的编码,或者不需要。您可以通过运行curl -v来查看使用的是哪一个,显然,请确保未进行urlencode编码。