首页 > 其他分享 >前端请求地址含特殊字符"+"后端接收数据显示空格

前端请求地址含特殊字符"+"后端接收数据显示空格

时间:2023-09-07 14:33:04浏览次数:39  
标签:请求 url 前端 request 空格 接收数据 特殊字符

问题描述:

  前端测试Get请求访问,path中的参数含有加号,后端过滤器中使用request.getParameter()方法无法获取。

  请求地址:http://localhost:8899/bookmark/getByUser?encryData=g3DGtZnczC7SUm+vRvkaYg==

  后端过滤器中接收参数如图所示,其中查询字符串是request.getQueryString()方法结果,请求参数是request.getParameter("encryData")结果:

   

分析步骤:

  1、url中存在特殊字符,需要进行编码处理。

  url编码值如下:

空格 - %20
” - %22
# - %23
% - %25
& - %26
( - %28
) - %29
+ - %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
\ - %5C
| - %7C

  url特殊字符转义如下:

URL中一些字符的特殊含义,基本编码规则如下:
1、空格换成加号(+)
2、正斜杠(/)分隔目录和子目录
3、问号(?)分隔URL和查询
4、百分号(%)制定特殊字符
5、#号指定书签
6、&号分隔参数

解决方案:

  前端使用encodeURIComponent()函数进行转义。

注:

  •  ApiPost工具调试请求时,处理特殊字符以下两种方法:
  1. 前端需转义2次;
  2. 使用工具自带的encodeURUComponent工具转换。

 

 思路:主要参考restTemplate请求原理,发现前端请求url需要进行二次编码后,通过APiPost发送的url在后端接收参数时才可正常接收。即“+” --> “%2B” --> "%252B"。

 

  

  

标签:请求,url,前端,request,空格,接收数据,特殊字符
From: https://www.cnblogs.com/new-bird90/p/17684825.html

相关文章

  • JS去掉空格
    去掉字符串中的所有空格,不仅仅包含前后空格:text=text.replace(//s/ig,'');去掉前后空格:第一种方法:使用trim()functionTrim(m){while((m.length>0)&&(m.charAt(0)==''))m=m.substring(1,m.length);while((m.length>0)&&(m.c......
  • 网址URL中特殊字符转义编码
    字符URL编码值空格%20"%22#%23%%25&%26(%28)%29+%2B,%2C/%2F:%3A;%3B<%3C=%3D>%3E?%3F@%40\%5C参考:https://www.cnblogs.com/dudumao/p/12581510.html......
  • vscode 设置tab为4个空格,并且打开显示空格
    1、关闭自动检测文件功能设置搜索detectIndentation,取消2、设置TabSize为43、开启显示空格设置搜索Whitespace,设置为all......
  • 1773_把vim的tab键设置为4个空格显示
    全部学习汇总:GitHub-GreyZhang/editors_skills:SummaryforsomecommoneditorskillsIused.有时候自己觉得自己很奇怪,看着Linux的命令窗口就觉得很顺眼。那些花花绿绿的字符以及繁多的方便命令工具,确实是比Windows强不少。不过,这方面Windows也在进步,如今在Windows10下使用v......
  • 分离包含空格字符串[xe & D7]
    xevars:string;sList:TStringList;begins:='aaa,bbb,ccc,dddd,eee';sList:=TStringList.Create;sList.StrictDelimiter:=True;//Delph7无此属性sList.Delimiter:=',';sList.DelimitedText:=s;ShowMessage(sList.Tex......
  • mysql中字段空格转换
    mysql中字段空格转换UPDATEc_kpi_countersSETcounter_enname=RTRIM(counter_enname)###将c_kpi_counters中counter_enname列下的所有含有,右空格的去掉空格在左边UPDATEfenlei_shipinSETtype_name=LTRIM(type_name)空格在右边UPDATEfenlei_shipinSET......
  • Leetcode 剑指Offer 05. 替换空格(Ti huan kong ge lcof)
    题目链接请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."提示:0<=s的长度<=10000思路直接提交returns.replace("","%20"),常用方法信手拈来可不是每个人都能做到的(笑我的思路是首先定义一个leng......
  • 通过pandas读取excel数据,很多数据开头带有'特殊字符,如何处理?
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个Pandas数据处理的问题,一起来看看吧。请教问题:通过pandas读取excle数据,很多数据开头带有'特殊字符,我用replace或者strip()函数处理均无法处理。二、实现过程这里【瑜亮老师】也给了一个代码,如下所示:df.columns......
  • sqlserver 从数据源左侧截取到遇到特殊字符的最短的子字符串
    selectdbo.sjGetPreStr('1234^5*6/-33_','[]-_=+*&^')    ===>1234Createfunction[dbo].[sjGetPreStr](@strvarchar(1000),@pointArrvarchar(100))returnsvarchar(1000)asbegindeclare@resvarchar(1000)=''......
  • VBS中解决路径带空格的三种方法
    方法一Setwshell=CreateObject("WScript.Shell")wshell.Run """C:\ProgramFiles\360\360se\360se.exe""",5,TrueSetwshell=Nothing 备注说明:命令格式:object.Run(strCommand,[intWindowStyle],[bWaitOnReturn])因为strComman......