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