当前位置: 首页 > 知识库问答 >
问题:

Quarkus rest客户端参数查询编码

司徒池暝
2023-03-14

我有这个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")

共有1个答案

终安和
2023-03-14

客户机的行为是正确的-%符号是URI中的保留字符-请参见RFC3986。因此,任何希望在URI中传递%的客户端都必须对其进行编码,从而将%25发送到服务器。
应由该APIendpoint的提供程序来正确地将查询参数解码为它们的字符串文本值。如果提供程序是Jax-rs,那么检查@encode注释,这些值是传递给decode还是raw。

 类似资料:
  • 问题内容: 我正在为具有List作为查询参数的GET服务创建Jersey客户。根据文档,可以将List作为查询参数(此信息也位于@QueryParam javadoc中),将其检出: 通常,方法参数的Java类型可以: 是原始类型; 有一个接受单个String参数的构造函数; 3. 有一个名为valueOf或fromString的静态方法,该方法接受单个String参数(例如,参见Integer.

  • 10.2.1 动态参数客户端 需求: 编写两个节点,一个节点可以动态修改参数,另一个节点时时解析修改后的数据。 客户端实现流程: 新建并编辑 .cfg 文件; 编辑CMakeLists.txt; 编译。 1.新建功能包 新建功能包,添加依赖:roscpp rospy std_msgs dynamic_reconfigure。 2.添加.cfg文件 新建 cfg 文件夹,添加 xxx.cfg 文件(

  • 问题内容: 如何在Java中将查询参数编码为URL?我知道,这似乎是一个显而易见且已经提出的问题。 我不确定有两个微妙之处: 网址上的空格应该编码为“ +”还是“%20”?在chrome中,如果我输入“ http://google.com/foo=?bar me”,则chrome会将其更改为使用%20进行编码 是否有必要/正确将冒号“:”编码为%3B?Chrome没有。 笔记: 似乎不起作用,似乎

  • 我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢

  • 在Java中,如何对url上的查询参数进行编码?我知道,这似乎是一个显而易见的问题。 有两个微妙之处我不确定: URL上的空格应该编码为"或"吗?在chrome中,如果我输入“http://google.com/foo=?bar我”chrome将其更改为编码 是否有必要/正确地将冒号":"编码为;?Chrome没有。 注意事项: 似乎不起作用,它似乎是用于编码要提交表单的数据。例如,它将空格编码为

  • 我的库需要连接到任意的AWS-IoT帐户,因此我在实例化AWS客户端时传递所需的凭据: 根据boto3文档(摘录如下),以这种方式传递的凭据应该覆盖所有其他凭据。然而,此调用从Boto3生成以下日志消息: 我真的不希望boto3拾取用户可能在他们的系统上配置的任何凭据——我希望它只使用我传递给boto3.client()的凭据。有什么想法如何确保这一点? 两份文件摘录: