@RequestBody 字符串中的 Java 空格替换为“+”

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

我正在尝试在请求正文中发送类似“Ekin Frontend”的字符串,并在后端将其转换为“Ekin+Frontend=”。 我认为 Springboot 会转换这些空格。有人知道吗?

这是我的代码块;

@PostMapping("/error")
public boolean addError( @RequestBody String errorMsg) {
    ...
}
java string spring-boot whitespace
1个回答
3
投票

我不认为这是正在发生的事情。在浏览器上打开您的开发工具并查看浏览器向服务器发送的内容(即网络选项卡)。我怀疑浏览器认为这是一个表单提交,并且正在使用表单编码对有效负载进行编码。您还应该查看开发工具中

Content-Type
标头中发送的 mime 类型。如果它是
multipart/form-data
application/x-www-form-urlencoded
那么这是一个很好的指示,你正在以这种方式发送到服务器。

如果你真的想发送一个字符串,你会希望

Content-Type
标头是“text/plain”或“text/plain;charset=utf-8”,因为我们不再使用 ASCII 了。如果您尝试发送纯文本,则必须使用 Javascript 来实现,因为您必须手动设置该 mime 类型。浏览器不会自己做。

但是,如果您尝试提交 HTML 表单,那么您应该让浏览器执行它的操作,并更改服务器以使用 @ModelAttribute 并删除 @ResponseBody 注释。

https://www.baeldung.com/spring-mvc-form-tutorial

© www.soinside.com 2019 - 2024. All rights reserved.