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

UrlBuilder查询字符串编码不工作

庄新翰
2023-03-14
String key = "bEyBOCB4SoL%2F1gI%s"

webClient.get()
.scheme("http")
.host("www.localhost:8080")
.queryParam("key", URLEncoder.encode(key, StandardCharsets.UTF_8.toString()))
.build()

... send request

共有1个答案

谭翔
2023-03-14

您正在对该值进行三重编码。

  • 字符串已编码,请参阅%2f,它是/的编码值。
  • 然后通过调用urlencoder.encode(...)手动编码,它将%编码为%25
  • QueryParam(...)方法将再次编码,该方法将%编码为%25

结果就是您看到的%25252f

String key = "bEyBOCB4SoL/1gI%s";
.queryParam("key", key)
 类似资料:
  • 问题内容: 您是否知道将Javascript对象编码为可通过请求传递的快速简单的方法? 不,没有其他框架-只是纯Javascript :) 问题答案: 像这样? 编辑:这也将转换递归对象(使用php“ array”表示法作为查询字符串)

  • 问题内容: 我正在尝试发送带有希伯来语查询字符串参数的GET请求。当控制器收到请求时,该参数为乱码。我添加了“ org.springframework.web.filter.CharacterEncodingFilter”,但是它并没有改变任何东西。 请告知如何解决。 更新:这是请求。 web.xml 罗伊 问题答案: 事实证明哪种用途 覆盖此请求正文中使用的字符编码的名称 。在读取请求参数或使用

  • 问题内容: 说我有一个网址 并且我有一个用户输入的查询,例如: 随机词银行 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但没有一个是正确的。 问题答案: 应该是要走的路。你只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符和参数名称-值分隔符都不进行编码。 请注意,查询参数中的空格由+而不

  • 假设我有一个URL 并且我有一个用户输入的查询,例如: 随机字500英镑银行$ 我希望结果是一个正确编码的URL: 实现这一点的最佳方法是什么?我尝试了并创建URI/URL对象,但结果都不是很对。

  • 问题内容: 我有一个网址 并且我有一个用户输入的查询,例如: 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但是没有一个是正确的。 问题答案: 可以使用 。您只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符&和参数名称-值分隔符都不进行编码=。 请注意,查询参数中的空格由而不是表示,这是合

  • 但是,有没有可能在API网关中硬编码访问令牌,将其传递到目的地,这样用户就不必将其包含在请求中了呢? 或者我唯一的选择就是为了这个做一个兰姆达...?