<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
Weisen Sie die Codierung mit encode </ code> an.
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
Um fromUri </ code> in einer codierten URL zu verwenden, geben Sie
true </ code> im Build
(boolesch codiert) </ code> an.
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
Wenn encode </ code> nicht angegeben ist, wird keine Codierung durchgeführt.
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
Wenn Sie eine codierte URL mit fromUri </ code> übergeben und nicht
true </ code> für
build (boolean encoded) </ code> angeben, erfolgt die Codierung. Infolgedessen wird eine Doppelcodierung </ b> durchgeführt.
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