我正在使用spring RestTemplate.exchange(URI)
。
uri与UriComponentsBuilder组装在一起。
我的一个查询参数是
query=München
如果我从日志中生成了url,并将其与curl一起使用,则可以正常工作。 当我让休息模板运行查询时,它不会。
关于变音符号没有被编码的东西?
如何让UriCompenentsBuilder和/或RestTemplate应对变音符号?
我知道我可以使用带有RestTemplate的字符串url,如下所示:
query=M%C3%BCnchen
并且有效。
答案 0 :(得分:0)
使用Spring默认请求工厂(RestTemplate
)初始化SimpleClientHttpRequestFactory
时会发生这种情况,例如:
RestTemplate restTemplate = new RestTemplate();
将默认请求工厂替换为HttpComponentsClientHttpRequestFactory
和Apache HttpClient
:
CloseableHttpClient httpClient = HttpClientBuilder
.create()
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
restTemplate = new RestTemplate(factory);
然后像往常一样拨打restTemplate.exchange()
。