程序猿阵线联盟-汇总各类技术干货

Postman encode url 注意事项

2019-04-24  本文已影响0人  OldChicken_

RFC 3986文档规定,Url中只允许包含英文字母(a-z,A-Z)、数字(0-9)、- _ . ~ 4个特殊字符以及所有保留字符。
RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]

当发送带有特殊字符的url请求(如:http://127.0.0.1:8080/list?users[0].age=26&users[0].name=mingming)时,如果不进行encode,就会报错 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

Postman是常用的url测试工具,可以方便的对url进行encode(选中需要encode的地方,右击),在使用encode功能时我遇到一个容易犯错的点,encode参数而不是url

如果encode了整个url,如下图错误示例所示,最终的url是http%3A%2F%2F127.0.0.1%3A8080%2Flist%3Fusers%5B0%5D.age%3D26%26users%5B0%5D.name%3Dmingming,它把url中所有满足特殊字符都按照替换规则都encode了,导致很多满足正常需求的特殊字符也被替换了,如http://中的://

错误示例.png

正确的做法是在参数位置选择要加密的参数并加密。


正确示例.png
上一篇 下一篇

猜你喜欢

热点阅读