我有这个quarkus rest api:
@ApplicationScoped
@RegisterRestClient(configKey = "s-api")
@RegisterProvider(LoggingFilter.class)
public interface MyClientAdapter {
@GET
@Produces(MediaType.TEXT_PLAIN)
String search(@QueryParam("lodis") double lodis,
@QueryParam("secTcn") String secTcn);
api工作得很好,但是如果我将这个值传递给方法 ussu%os
,rest客户端将其编码为“ussu%25os”:
restClient.search(28322.2, "ussu%os")
因此,端点不返回任何内容。
所以我的问题是如何禁用queryparam sectcn的编码?
1条答案
按热度按时间zd287kbt1#
你客户的行为是正确的-
%
符号是URI中的保留字符-请参阅rfc3986。所以任何想通过%
在uri中必须对其进行编码,从而导致%25
正在发送到服务器。由该api端点的提供者将查询参数正确解码为其字符串文本值。如果提供者是jax-rs,那么检查
@Encoded
注解,无论传递值是解码还是原始。