异常:Invalid character found in the request target. The valid characters are defined in RFC 3986

RFC 3986 文档

  1. RFC 3986文档规定,Url中只允许包含英文字母(a-z,A-Z)、数字(0-9)、- _ . ~ 4个特殊字符以及所有保留字符。
  2. RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]

不安全字符

还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为不安全字符,原因有很多。
  • 空格,Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉
  • ‘’以及<>引号和尖括号通常用于在普通文本中起到分隔Url的作用
  • # 通常用于表示书签或者锚点
  • % 百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码
  • { } | \ ^ [ ] ` ~ 某一些网关或者传输代理会篡改这些字符

转义

如果要在url里使用不安全字符,就需要使用转义。

附上ASCII字符与URL编码的对照表,如下:

ASCII字符   URL编码  
空格     %20  
!     %21  
"    %22  
#   %23  
$    %24  
%   %25  
&    %26  
'     %27  
(    %28  
)    %29  
*    %2A  
+   %2B  
,     %2C  
-     %2D  
.     %2E  
/    %2F  
0    %30  
1    %31  
2    %32  
3    %33  
4    %34  
5    %35  
6    %36  
7    %37  
8    %38  
9    %39  
:     %3A  
;     %3B  
<   %3C 
=   %3D 
>   %3E  
?    %3F  
@   %40  
A    %41  
B    %42  
C    %43  
D    %44  
E    %45  
F    %46  
G    %47  
H    %48  
I    %49  
J    %4A  
K    %4B  
L    %4C  
M   %4D  
N    %4E  
O   %4F  
P    %50  
Q   %51  
R    %52  
S    %53  
T    %54  
U    %55  
V    %56  
W   %57  
X    %58  
Y    %59  
Z    %5A  
[    %5B  
\    %5C  
]    %5D  
^   %5E  
_    %5F  
`    %60  
a    %61  
b    %62  
c    %63  
d    %64  
e    %65  
f     %66  
g    %67  
h    %68  
i     %69  
j     %6A  
k    %6B  
l     %6C  
m   %6D  
n    %6E  
o    %6F  
p    %70  
q    %71  
r     %72  
s    %73  
t     %74  
u    %75  
v    %76  
w   %77  
x    %78  
y    %79  
z    %7A  
{    %7B  
|    %7C  
}    %7D  
~   %7E  
%7F%80  
%81%82  
ƒ    %83%84%85%86%87  
ˆ    %88%89  
Š    %8A%8B  
Π  %8C  
%8D  
Ž    %8E  
%8F  
%90%91%92%93%94%95%96%97  
˜    %98%99  
š    %9A%9B  
œ   %9C  
%9D  
ž    %9E  
Ÿ    %9F  
%A0  
¡     %A1  
¢    %A2  
£    %A3  
%A4  
¥    %A5  
|    %A6  
§    %A7  
¨    %A8  
©   %A9  
ª    %AA  
«    %AB  
¬   %AC  
¯    %AD  
®   %AE  
¯    %AF  
°    %B0  
±   %B1  
²    %B2  
³    %B3  
´     %B4  
µ    %B5%B6  
·     %B7  
¸     %B8  
¹    %B9  
º    %BA  
»    %BB  
¼   %BC  
½   %BD  
¾   %BE  
¿    %BF  
À    %C0  
Á    %C1  
    %C2  
à   %C3  
Ä    %C4  
Å    %C5  
Æ   %C6  
Ç    %C7  
È    %C8  
É    %C9  
Ê    %CA  
Ë    %CB  
Ì    %CC  
Í    %CD  
Î    %CE  
Ï    %CF  
Ð   %D0  
Ñ    %D1  
Ò   %D2  
Ó   %D3  
Ô   %D4  
Õ   %D5  
Ö   %D6  
%D7  
Ø   %D8  
Ù    %D9  
Ú    %DA  
Û    %DB  
Ü    %DC  
Ý    %DD  
Þ    %DE  
ß    %DF  
à    %E0  
á    %E1  
â    %E2  
ã    %E3  
ä    %E4  
å    %E5  
æ   %E6  
ç    %E7  
è    %E8  
é    %E9  
ê    %EA  
ë    %EB  
ì     %EC  
í     %ED  
î     %EE  
ï     %EF  
ð    %F0  
ñ    %F1  
ò    %F2  
ó    %F3  
ô    %F4  
õ    %F5  
ö    %F6  
÷   %F7  
ø    %F8  
ù    %F9  
ú    %FA  
û    %FB  
ü    %FC  
ý    %FD  
þ    %FE  
ÿ    %FF  
  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986是一个Java异常,它表示在请求目标中找到了无效字符。RFC 7230和RFC 3986定义了请求目标中允许的有效字符范围。这个异常通常出现在HTTP请求的处理过程中。 出现这个异常的原因可能是由于请求目标中包含了不符合RFC标准的无效字符。可能是由于URL编码错误、特殊字符未正确转义等原因导致的。通常情况下,这个异常会记录在日志中,以帮助开发者定位问题。 解决这个问题的方法是确保请求目标中的字符都是符合RFC 7230和RFC 3986定义的有效字符范围。可以使用URL编码对特殊字符进行正确转义,确保请求目标的格式符合标准。另外,还可以检查代码中处理请求目标的部分,确保没有对无效字符进行处理或解析。 综上所述,java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986是一个Java异常,表示在请求目标中找到了无效字符。要解决这个问题,需要确保请求目标中的字符符合RFC标准,并且检查代码中处理请求目标的部分,确保没有对无效字符进行处理或解析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java.lang.IllegalArgumentException: Invalid character found in the request target 异常](https://blog.csdn.net/weixin_46417933/article/details/122409399)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact](https://blog.csdn.net/ab601026460/article/details/85258829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值