如何使用RestTemplate禁用编码

问题描述 投票:2回答:2

我正在使用REST模板故意在请求uri中发送%,类似/items/a%b

String responseEntity = restTemplate.exchange("/items/a%b",
             requestObj.getHttpMethod(), requestEntity, String.class);

[restTemplate正在转换此uri的结尾,并且正在变为/items/a%25b,这很有意义,因为默认情况下其余模板对uri进行编码。

我尝试使用UriComponent禁用uri的编码

UriComponents uriComponents = UriComponentsBuilder.fromPath("/items/a%b").build();
URI uri= uriComponents.toUri();

String responseEntity = restTemplate.exchange(uri,
             requestObj.getHttpMethod(), requestEntity, String.class);

但是这不能正常工作,因为uri再次是URI类型,它可以进行编码。我确定我没有以正确的方式使用UriComponents。

如果有人能指出禁用编码的正确方法,我将不胜感激。

谢谢。

java spring spring-mvc resttemplate
2个回答
4
投票
来自UriComponentsBuilder文档,存在方法build(boolean encoded)

0
投票

我认为这是在RestTemplate中禁用编码的最佳方法,对我而言效果很好

© www.soinside.com 2019 - 2024. All rights reserved.