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?上次更改时间= 1507881481909
Spring RestTemplate在请求服务器时将其编码为以下内容
https://localhost/api/fm/info/dump/a%5Cb%5Cf%5C20170722_225714.jpg?lastModified=1507881481909
仅供参考,我需要禁用网址编码,以便' \'由于我们的Web服务器(Nginx)已配置为根据包含' \'的请求的路径执行某些检查,因此服务器端可以使用字符,因为这是业务要求。字符。
答案 0 :(得分:4)
创建一个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;
}
}
然后通过构造函数注入自动将RestTemplate连接到任何类中。