gpt4 book ai didi

java - 如何在 Spring UriComponentsBuilder 中对逗号进行编码?

转载 作者:行者123 更新时间:2023-11-30 06:00:47 26 4
gpt4 key购买 nike

我有以下代码:

    String convertedBuilder = builder.toUriString();
convertedBuilder = convertedBuilder.replace(",", "\\,");



URI uri = UriComponentsBuilder.fromUriString(convertedBuilder)
.build().toUri();

这个想法是用 '\,'(斜杠和逗号)替换单个逗号 ','。原始 URL 应该类似于

'server-url'?name=te%5C%2Cst 参数值 'te\,st

然而 Spring 生成了这个:

'server-url'?name=te%5C%252Cst

我做错了什么?

问候,

最佳答案

我有一个类似的要求,我必须调用具有 GPS 坐标的服务,如下所示:

http://example.com/path?param1=40.678806%2C-73.943244

UriComponentsBuilder 单独可以:

  • 不对参数值中的 ,(逗号)进行编码
  • 如果我已使用 URLEncoder 对参数进行编码,则对编码后的逗号进行编码,从而生成值 40.678806%252C-73.943244

我通过使用 URLEncoder 显式编码查询参数并告诉 UriComponentsBuilder URL 已编码来解决:

UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://example.com/path")
.queryParam("param1" , URLEncoder.encode("40.678806,-73.943244", "UTF-8"));

ResponseEntity<String> resp = template.exchange(
builder.build(true).toUri(),
HttpMethod.GET,
null, new ParameterizedTypeReference<String> () {}
);

关于java - 如何在 Spring UriComponentsBuilder 中对逗号进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52320530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com