当前位置: 首页 > news >正文

Android URL中+转义之后导致服务器请求无法获得正确的参数值

请求中有筛选条件里面含有+的,在拼接到URL中之后就会变成空格,+转义之后是%2B,最简单的就是我们可以将最终的URL进行+的替换处理。

将url参数中的+,&,=,/等转义编码

把这些字符转化成服务器可以识别的字符就可以了,对应关系表如下:

符号URL中转义结果转义码
+URL中+号表示空格%2B
空格URL中的空格可以用+号或者编码%20
/分隔目录和子目录%2F
?分隔实际的URL和参数%3F
%指定特殊字符%25
#表示书签%23
&URL中指定的参数间的分隔符%26
#URL中指定参数的值%26
=URL中指定参数的值%3D

 1.解决:

①避免在url使用+号

②如果类似加密,可能产生加号以及各种特殊符号,建议接口使用post

③直接将URL中的+给替换处理成%2B

/**
     *  转义URL中的+
     * @param url
     * @return
     */
    public static String escapePlusSign(String url){
        // 解析时,会把 + 号转换为 空格,导致参数不能正常的传输,这里需要进行处理一下
        if(!TextUtils.isEmpty(url)){
            if(url.contains("+")){
                return url.replace("+", "%2B");
            }
        }
        return url;
    }
url = Util.escapePlusSign(url);

相关文章:

  • LeetCode算法题(Go语言实现)_28
  • 【电平转换原理】
  • WinDbg. From A to Z! 笔记(下)
  • 大坑!GaussDB数据库批量插入数据变只读
  • ctfshow _萌新 萌新_密码篇
  • 常见集合篇(五)深入解析 HashMap:从原理到源码,全方位解读
  • 青铜与信隼的史诗——TCP与UDP的千年博弈
  • 【JavaScript】闭包小练习(数字范围起始值和结束值)
  • RHCSA Linux 系统创建文件
  • Vim操作指令全解析
  • 质检LIMS实验室系统在环保技术企业的应用 环保技术研发场景的特殊性需求
  • C++高效读取大规模文本格式点云(windows)
  • 手机归属地查询Api接口,数据准确可靠
  • 根据时间范围得出雪花算法(snowflake)ID的工具类-基于时间反推ID范围
  • AiCube 试用 - 创建流水灯工程
  • 有瓶颈设备的多级生产计划问题:基于Matlab的深度解析与实践
  • LeetCode 解题思路 31(Hot 100)
  • 八. 深入理解 Java 继承:概念、应用与最佳实践
  • Error:java: 程序包lombok不存在
  • 基于springboot+vue的停车场管理系统