有效解决The valid characters are defined in RFC 7230 and RFC 3986问题

今天项目做迁移,想换一个高一点版本的tomcat,就出现了问题,记录一下。

分析原因:
导致上述问题是因为tomcat自tomcat 8.0.35版本之后对URL参数做了比较规范的限制,必须遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)必须做转义操作,否则会抛出Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986错误信息。

可以有三种方法解决:

方法一:将json数据进行urlencode编码;
方法二:降低tomcat版本;
方法三:配置tomcat/conf下的catalina.properties

将tomcat.util.http.parser.HttpParser.requestTargetAllow=|修改为
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

在这里插入图片描述
建议:有时候项目已经运行很久了,如果贸然修改代码,或者降低tomcat的版本,或造成很大的问题或者测试工作量,所以建议使用方法三,从tomcat的层面解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值