springboot接收http請求,解決參數(shù)中+號變成空格的問題
springboot接收http請求,參數(shù)中+號變成空格
小插曲
+ 在執(zhí)行URLEncoder.encode(String,"UTF-8")編碼后會變成 %2B
+ 在執(zhí)行URLDecoder.decode(String,"UTF-8")編碼后會變成 空格
解決get請求中的問題
1.如前端發(fā)送的URL中含有“+”那么使用springboot框架接受的參數(shù)中 “+”會變成 空格
此時的解決辦法是 URLEncoder.encode(參數(shù),"UTF-8")
解決post請求中的問題
1.如前端發(fā)送的URL中含有“+”那么使用springboot框架接受的參數(shù)中 “+”不會變成 空格
此時直接使用該參數(shù)就可以
SpringBoot問題筆記:http請求參數(shù)含有特殊符號[]
請求報錯,調(diào)試控制器函數(shù)沒有觸發(fā)。

懷疑是請求參數(shù)中含有字符 [ ]
由博客了解到是由于Tomcat的新版本中增加了一個新特性,嚴格按照 RFC 3986規(guī)范進行訪問解析,而 RFC 3986規(guī)范定義了Url中只允許包含英文字母(a-zA-Z)、數(shù)字(0-9)、-_.~4個特殊字符以及所有保留字符(RFC3986中指定了以下字符為保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ])。
解決方法:修改tomcat配置
@SpringBootApplication
@EnableAsync
public class MainApplication {
public static void main(String[] args)
{
SpringApplication.run(MainApplication.class, args);
}
//允許http請求含有字符[]{}
@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory (){
// 修改內(nèi)置的 tomcat 容器配置
TomcatServletWebServerFactory tomcatServlet = new TomcatServletWebServerFactory();
tomcatServlet.addConnectorCustomizers(
(TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]")
);
return tomcatServlet ;
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用x-www-form-urlencoded發(fā)請求方式
在開發(fā)中經(jīng)常使用JSON格式,但遇到x-www-form-urlencoded格式時,可以通過重新封裝處理,POSTMan和APIpost工具中對此編碼的稱呼不同,分別是x-www-form-urlencoded和urlencoded,分享這些經(jīng)驗希望對他人有所幫助2024-09-09
MyBatis-Plus中公共字段的統(tǒng)一處理的實現(xiàn)
在開發(fā)中經(jīng)常遇到多個實體類有共同的屬性字段,這些字段屬于公共字段,本文主要介紹了MyBatis-Plus中公共字段的統(tǒng)一處理的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-08-08
Spring?Boot?@Autowired?@Resource屬性賦值時機探究
這篇文章主要為大家介紹了Spring?Boot?@Autowired?@Resource屬性賦值時機,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Failed to execute goal org...的解決辦法
這篇文章主要介紹了Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-06-06
簡單講解奇偶排序算法及在Java數(shù)組中的實現(xiàn)
這篇文章主要介紹了奇偶排序算法及Java數(shù)組的實現(xiàn),奇偶排序的時間復(fù)雜度為O(N^2),需要的朋友可以參考下2016-04-04

