栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中URLEncoder.encode与URLDecoder.decode处理url特殊参数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中URLEncoder.encode与URLDecoder.decode处理url特殊参数

在做Http get请求传参时,因为参数的值被加密了,得到的是base64的编码字符串,例如:

za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==

显然,里面包含了/ + = 特殊字符,如果直接通过url来传递该参数,那么在服务端获取的param会变成类似于下面的值:

za4T8MHB/6mhmYgXB7IntyyOUL7Cl 0jv5rFxAIFVji8GDrcf k8g== 

我们看到 三个 + 号消失了。

其原因就是:如果url参数值含有特殊字符时,需要使用 url 编码。 

 url = xxxxx?param = URLEncoder.encode("za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==", "utf-8");

 然后服务端获取时:

String param = URLDecoder.decode(param, "utf-8");

这样才能获取到正确的值。

注意:

URLEncoder 必须 仅仅 编码 参数 或者参数的值,不能编码整个 url,也不能一起对 param=value 进行编码。而是应该: param=URLEncode(value, "utf-8")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号