400错误不⽀持花括号问题以及请求参数中⽂乱码问题
调试代码时,⽤postman测试,发现请求中参数包含花括号{},都没有经过,直接报400Bad Request ;或者参数是中⽂的话,后台获取的参数是乱码,得不到想要的结果。
⼀般两个⽅⾯
发送请求的⼀⽅:postman的问题
接受请求的⼀⽅:tomcat的问题
⼀.对于⼤括号问题:
1. postman解决⽅案:
可以对相应的参数进⾏编码:
具体操作就是使⽤⿏标在⼤括号上右键,选择EncodeURIComponent;
或者⼿动转码:{ : %7B  ;    } : %7D
2. tomcat解决⽅案:
tomcat有三个解决办法:
1.修改config下的l⽂件;(推荐,好像所有tomcat版本都⽀持;)
在下图位置(访问端⼝处)添加:
relaxedQueryChars="[]|{}^\`"<>"
2.换个低版本;
tomcat7.0.6版本以前的好像都可以;
3.修改config下的catalina.properties⽂件;
tomcat有些版本不⽀持(如tomcat9.0.21就不⽀持),换个相近的⽀持的tomcat版本;
修改tomcat⾥config下的catalina.properties⽂件的最后⼀⾏;(可能需要经常回来配置,因为设置可能会被重置) 具体设置如下:
tomcat.util.http.questTargetAllow=|{}
postman的中文翻译
参考:blog.csdn/RyanDon/article/details/82664696
⼆. 对于中⽂问题:
postman中可以设置转码或者设置全局变量,测试了⼀下并不好⽤。
于是检查tomcat的配置,发现tomcat默认配置并没有对⽂字编码进⾏配置 URIEncoding=“UTF-8”
于是:
修改l:在如下位置,加上 URIEncoding=“UTF-8”
<Connector port=“8180” protocol=“HTTP/1.1”
connectionTimeout=“20000”
redirectPort=“8443” URIEncoding=“UTF-8”/>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。