get请求参数中包含#,%等特殊字符时后端报错解决

在项目中测试接口时发现了一些问题,当请求中不包含特殊字符时请求结果正常,当请求中 需要添加#% 等特殊字符时,会报

Required String parameter is not present 异常,使参数和后端无法绑定,导致后端空指针异常。

 

解决:

url中特殊符号都有特殊意义或者被认为是不安全的字符,所以在拼接url时应当替换出url中的特殊字符。

 

比如 请求 url 为 

 localhost:8080/hhr/api/assist/funding/queryBank?keyword=工商%浙江 ,

参数keyword中包含%,在请求之前将其处理为 %25,改为

localhost:8080/hhr/api/assist/funding/queryBank?keyword=工商%25浙江 , 

问题解决。

部分字符转换表如下: 详情请参考 https://blog.csdn.net/sbin456/article/details/72851517

Character    From Windows-1252    From UTF-8
space    %20    %20
!    %21    %21
"    %22    %22
#    %23    %23
$    %24    %24
%    %25    %25
&    %26    %26
'    %27    %27
(    %28    %28
)    %29    %29
*    %2A    %2A
+    %2B    %2B
,    %2C    %2C
-    %2D    %2D
.    %2E    %2E
/    %2F    %2F
0    %30    %30
1    %31    %31
2    %32    %32
3    %33    %33
4    %34    %34
5    %35    %35
6    %36    %36
7    %37    %37
8    %38    %38
9    %39    %39
:    %3A    %3A
;    %3B    %3B
<    %3C    %3C
=    %3D    %3D
>    %3E    %3E
?    %3F    %3F
@    %40    %40
A    %41    %41
B    %42    %42
C    %43    %43
D    %44    %44
E    %45    %45
F    %46    %46
G    %47    %47
H    %48    %48
I    %49    %49
J    %4A    %4A
K    %4B    %4B
L    %4C    %4C
M    %4D    %4D
N    %4E    %4E
O    %4F    %4F
P    %50    %50
Q    %51    %51
R    %52    %52
S    %53    %53
T    %54    %54
U    %55    %55
V    %56    %56
W    %57    %57
X    %58    %58
Y    %59    %59
Z    %5A    %5A
[    %5B    %5B
\    %5C    %5C
]    %5D    %5D
^    %5E    %5E
_    %5F    %5F
`    %60    %60
a    %61    %61
b    %62    %62
c    %63    %63
d    %64    %64
e    %65    %65
f    %66    %66
g    %67    %67
h    %68    %68
i    %69    %69
j    %6A    %6A
k    %6B    %6B
l    %6C    %6C
m    %6D    %6D
n    %6E    %6E
o    %6F    %6F
p    %70    %70
q    %71    %71
r    %72    %72
s    %73    %73
t    %74    %74
u    %75    %75
v    %76    %76
w    %77    %77
x    %78    %78
y    %79    %79
z    %7A    %7A

前端

你可能感兴趣的:(前端,Exceptions)