String url = serverUrl + metadata.getUri();
response = restTemplate.exchange(url, metadata.getAction(), requestEntity, metadata.getResponseType());
url 包含字符串
https://localhost/api/fm/info/dump/a 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 https://localhost/api/fm/info/dump/a%5Cb%5Cf%5C20170722_225714.jpg?lastModified=1507881481909
仅供参考,我需要禁用 URL 编码,以便“\”字符在服务器端可用,因为这是业务需求,因为我们的 Web 服务器 (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;
}
}
Then Autowire your RestTemplate
在任何班级通过构造函数注入.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)