<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
Instruisez l'encodage avec encode </ code>.
URI target = UriComponentsBuilder.newInstance()
.scheme("http")
.host("example.com")
.queryParam("foo", "b&r")
.build()
.encode()
.toUri();
System.out.println(target);// http://example.com?foo=b%26r
Pour utiliser fromUri </ code> dans une URL encodée, spécifiez
true </ code> dans
build (boolean encoded) </ code>.
URI source = new URI("http://example.com?foo=b%26r");
URI target = UriComponentsBuilder
.fromUri(source)
.build(true)
.toUri();
System.out.println(target);// http://example.com?foo=b%26r
Si encode </ code> n'est pas spécifié, aucun encodage ne sera effectué.
URI target = UriComponentsBuilder.newInstance()
.scheme("http")
.host("example.com")
.queryParam("foo", "b&r")
.build()
.toUri();
System.out.println(target); // http://example.com?foo=b&r
Si vous transmettez une URL encodée avec fromUri </ code> et ne spécifiez pas
true </ code> pour
build (boolean encoded) </ code>, l'encodage se produira. Par conséquent, un double codage </ b> est effectué.
URI source = new URI("http://example.com?foo=b%26r");
URI target = UriComponentsBuilder
.fromUri(source)
.build()
.toUri();
System.out.println(target);// http://example.com?foo=b%2526r
[SPR-14256] Doc: UriComponentsBuilder does not encode query parameters - Spring JIRA
Recommended Posts