【发布时间】:2020-11-01 00:55:03
【问题描述】:
我正在使用 Java Spring Resttemplate 通过 get 请求获取 json。查询参数值可以包含俄语字符。在这种情况下,我不会从 API 接收数据。
我的代码:
URI uri = UriComponentsBuilder.fromHttpUrl(url)
.path("/resume")
.queryParam("text", "Java-разработчик")
.build()
.toUri();
log.info("URI: " + uri);
日志:
https://api.link.com/resume?text=Java-%D0%A1%D0%82%D0%A0%C2%B0%D0%A0%C2%B7%D0%A1%D0%82%D0%A0%C2%B0%D0%A0%C2%B1%D0%A0%D1%95%D0%A1%E2%80%9A%D0%A1%E2%80%A1%D0%A0%D1%91%D0%A0%D1%94
我也试过这个,但没有帮助:
1)
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
2)
URI uri = UriComponentsBuilder.fromHttpUrl(url)
.path("/resume")
.queryParam("text", URLEncoder.encode("Java-разработчик", HTTP.UTF-8))
.build()
.toUri();
怎样做才能使俄语字符不发生变化并直接与它们一起发送请求?
也就是说,最终请求应该是这样的:
https://api.link.com/resume?text=Java-разработчик
【问题讨论】:
-
也许这回答了你的问题stackoverflow.com/questions/7295302/…
-
网上的@JavaMan,很多地方也提到了这个方法,可惜这对我没有帮助:(
标签: java encryption character-encoding resttemplate