http中url特殊字符转义及解决方法
前言:使用的是http中的get请求,但是又不想明文给别人,加密之后数据就包含了“+”号
知识:提交的参数中有“&”,"+"等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待
例如 list?act=go&state=5 获取到的是act和state的值,
但是如果你想要的是act的值为 “go&state=5” 字符串,就得进行转义(对应可使用通用方法二)
1、空格换成加号(+) %2B
2、空格url字符可以使用+号或 %2O
3、正斜杠(/)分隔目录和子目录 %2F
4、问号(?)分隔URL和查询 %3F
5、百分号(%)制定特殊字符 %25
6、#号指定书签 &23
7、&号分隔参数 %26
8、=号分隔参数 %3D
解决方法:
方法一:修改服务器端,将空格替换为“+”,这种方式只适用于参数中有“+”没有空格的情况。
//请求接口时,客户端向服务器传递参数时,参数中的“+”会变成空格,因为URL中默认的将“+”号转义了
//例如生成的客户端链接为http://licalhost:8080/download?reqStr=sddwc+qwed+drwdef
//传到服务端后台reqStr=sddwc qwed drwdef
//服务端转换之后reqStr=sddwc+qwed+drwdef
reqStr = reqStr.replaceAll(" ","+");
方法二:修改客户端,将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了 (通用方法,可以转义别的特殊字符)
//java 使用
//请求接口时,客户端向服务器传递参数时,参数中的“+”会变成空格,因为URL中默认的将“+”号转义了
//例如生成的客户端链接为http://licalhost:8080/download?reqStr=sddwc+qwed+drwdef
reqStr = reqStr.replaceAll("\\+","%2B");
//此时的客户端真实链接为http://licalhost:8080/download?reqStr=sddwc%2Bqwed%2Bdrwdef
//到服务器端的reqStr=sddwc+qwed+drwdefjs使用
局部替换
var str = 'abcadeacf';
var str1 = str.replace('a', 'o');
alert(str1);
// 打印结果: obcadeacf
全局替换
var str2 = str.replace(/a/g, 'o');
alert(str2);
//打印结果: obcodeocf处理方法:
function URLencode(sStr)
{ return escape(sStr).replace(/\%/g,"%25").replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}//IE8不支持escape
function URLencode(sStr)
{ return sStr.replace(/\%/g,"%25").replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}
方法三:修改服务器端,特殊的:入参为request可以使用,如果是注解方法获取的reqStr则不行
正常情况下获取参数的方法为reuqest.getParameter,此时应该使用request.getQueryString().substring(0),然后对得到的字符串进行解析
String reqStr =request.getQueryString().substring(0);
a=a.substring(10)
http中url特殊字符转义及解决方法相关推荐
- url特殊字符转义及解决方法
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- url 特殊字符 传递参数解决方法
url 特殊字符 传递参数解决方法 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码. 十六进制值 1. + UR ...
- java url转义_url特殊字符转义及解决方法
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- shell url转义_url特殊字符转义及解决方法
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- html转义es,Js特殊字符转义之htmlEscape()方法
为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...
- ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患.分享给大家供大家参考,具体如下: php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分 ...
- html url 空格转义字符,url特殊字符转义小知识
摘要 腾兴网为您分享:url特殊字符转义小知识,余额宝,学习帮,小牛,完美志愿等软件知识,以及joinme,hackertyperneo,疯子苹果,mse杀毒软件,心动表情包,巫师3优化补丁,酷娃,米 ...
- php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...
这篇文章主要介绍了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法,主要通过针对magic_quotes_gpc开启的情况下进行检查与判断转义来实现,需要的朋友可以参考下 本文实例讲述了 ...
- http url特殊字符转义
哪些字符需要编码 1.URL特殊字符转义,URL中一些字符的特殊含义,基本编码规则如下: 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定 ...
最新文章
- 关于mysql字符集及导入导出
- OpenGL绘制复杂图形
- 笔记-信息系统开发基础-软件测试-软件测试的类型
- 5G发展是绵绵秋雨 应循序渐进
- mikechen谈技术人成长的三大原则
- python 网站模板_使用Python抓取模板之家的CSS模板
- Spring Boot学习总结(22)——如何定制自己的 springboot starter 组件呢?
- LeetCode 537. Complex Number Multiplication
- paip.输入法编程---词频顺序order by py
- 金蝶云星空之表单插件的开发
- tf.TensorShape
- Instagram登录使用教程目录
- APP全栈工程师修炼之路(二)
- 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)
- 收藏--真正爱你的男人
- 算法复杂度 O(1),O(n),O(logn),O(nlogn)的区别
- Android HorizontalScrollView 水平滑动 在listview上面动态添加图片
- ZOJ - 4049 Halting Problem 题解【c++】
- Apriltag编解码系统
- 说说这三四年我用过的语音IC架构