我正在使用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。
如果有人能指出禁用编码的正确方法,我将不胜感激。
谢谢。
build(boolean encoded)
我认为这是在RestTemplate中禁用编码的最佳方法,对我而言效果很好