gpt4 book ai didi

spring - 如何在 Spring RestTemplate 中禁用 URL 编码?

转载 作者:行者123 更新时间:2023-12-05 08:41:48 42 4
gpt4 key购买 nike

String url = serverUrl + metadata.getUri();
response = restTemplate.exchange(url, metadata.getAction(), requestEntity, metadata.getResponseType());

url 包含字符串

https://localhost/api/fm/info/dump/a\b\f\20170722_225714.jpg?lastModified=1507881481909

Spring RestTemplate 在向服务器请求时将其编码为以下内容

https://localhost/api/fm/info/dump/a%5Cb%5Cf%5C20170722_225714.jpg?lastModified=1507881481909

仅供引用,我需要禁用 URL 编码,以便“\”字符在服务器端可用,因为这是一项业务需求,因为我们的网络服务器 (Nginx) 已配置为根据请求的路径执行一些检查包含 '\' 字符。

最佳答案

创建一个Configuration类并添加以下代码:

@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
DefaultUriBuilderFactory defaultUriBuilderFactory = new DefaultUriBuilderFactory();
defaultUriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(defaultUriBuilderFactory);
return restTemplate;
}
}

然后 Autowiring 您在任何类中的RestTemplate通过构造函数注入(inject)

关于spring - 如何在 Spring RestTemplate 中禁用 URL 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422472/

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