【发布时间】:2019-11-24 03:36:42
【问题描述】:
我有一个看起来像这样的路径:/service/method/{id}/{parameters} 我使用 restTemplate 调用,其中/service/method 是一个微服务,{id} 是我需要请求的一些 id,{parameters} 是一个链接看起来像这样:/home/floor/kitchen/,我稍后在服务/方法微服务中用于在 JsonNodeTree 中进行映射。
我正在尝试使用
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("id", "5080572115");
uriVariables.put("parameters", "/home/floor/kitchen/");
UriComponents uriComponents = UriComponentsBuilder.newInstance().scheme("http").host("service/methods/{id}").
path("/{parameters}").buildAndExpand(uriVariables).encode();
String finalURI = uriComponents.toUriString();
return restTemplate.getForObject(finalURI, Integer.class);
但我得到的是整个链接 http://service/methods/{id}/{parameters} 编码。我只需要对其中的一部分({parameters})进行编码,这样我就可以将 url 的另一部分解析为 RestTemplate。 再次明确,我需要将 service/methods/{id} 解析为 RestTemplate,然后解码 {parameters} 以用作 JsonNodeTree 的路径。
编辑:我知道查询,但找不到对路径的一部分进行编码的解决方案。
【问题讨论】:
标签: java spring spring-boot encode encodeuricomponent