在Rest API中的查询参数中发送pct(%)

时间:2018-12-19 06:25:11

标签: java spring rest

我有一个REST API,端点是这样的:

/private/items/query

我将id用作查询参数,因此url就像:

http://localhost:8081/private/items/query?id=item1234

现在,当该项目包含%符号时,它就无法正确地作为我的API中的查询参数使用,例如如果是item%21,我收到的是item!

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

%符号通常用于对查询字符串中的特殊字符进行编码,例如+在作为查询字符串发送时被编码为%2B

here所述:

  

因为百分号(“%”)用作指示   百分比编码的八位位组,为此必须将其百分比编码为“%25”   八位字节用作URI中的数据。

在您的情况下,您需要发送%2521,并将其解码为后端的%21,因为经过URL解码后%25%。您可以将此link用于URL编码。