标签: java spring rest
我有一个REST API,端点是这样的:
/private/items/query
我将id用作查询参数,因此url就像:
http://localhost:8081/private/items/query?id=item1234
现在,当该项目包含%符号时,它就无法正确地作为我的API中的查询参数使用,例如如果是item%21,我收到的是item!。
%
item%21
item!
如何解决此问题?
答案 0 :(得分:2)
%符号通常用于对查询字符串中的特殊字符进行编码,例如+在作为查询字符串发送时被编码为%2B。
+
%2B
如here所述:
因为百分号(“%”)用作指示 百分比编码的八位位组,为此必须将其百分比编码为“%25” 八位字节用作URI中的数据。
在您的情况下,您需要发送%2521,并将其解码为后端的%21,因为经过URL解码后%25是%。您可以将此link用于URL编码。
%2521
%21
%25