400错误 不支持花括号问题 以及请求参数中文乱码问题

调试代码时,用postman测试,发现请求中参数包含花括号{},都没有经过拦截器,直接报400Bad Request ;或者参数是中文的话,后台获取的参数是乱码,得不到想要的结果。

一般两个方面

发送请求的一方:postman的问题

接受请求的一方:tomcat的问题

一.对于大括号问题:

  1. postman解决方案:

    可以对相应的参数进行编码:
    具体操作就是使用鼠标在大括号上右键,选择EncodeURIComponent;
    或者手动转码:{ : %7B   ;    } : %7D  
    
  2. tomcat解决方案:
    tomcat有三个解决办法:
    1.修改config下的server.xml文件;(推荐,好像所有tomcat版本都支持;)
    在下图位置(访问端口处)添加:
    在这里插入图片描述

relaxedQueryChars="[]|{}^\`"<>"
2.换个低版本;
	tomcat7.0.6版本以前的好像都可以; 
		
3.修改config下的catalina.properties文件;
  • tomcat有些版本不支持(如tomcat9.0.21就不支持),换个相近的支持的tomcat版本;
  • 修改tomcat里config下的catalina.properties文件的最后一行;(可能需要经常回来配置,因为设置可能会被重置) 具体设置如下:
  		tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
参考:https://blog.csdn.net/RyanDon/article/details/82664696

二. 对于中文问题:

postman中可以设置转码或者设置全局变量,测试了一下并不好用。
于是检查tomcat的配置,发现tomcat默认配置并没有对文字编码进行配置 URIEncoding=“UTF-8”
于是:
修改tomcat server.xml:在如下位置,加上 URIEncoding=“UTF-8”

<Connector port=“8180” protocol=“HTTP/1.1”
connectionTimeout=“20000”
redirectPort=“8443” URIEncoding=“UTF-8”/>

感谢https://blog.csdn.net/che_ku/article/details/79445808

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值