On dirait que vous voulez probablement utiliser URL plutôt que URI (qui est plus général et doit faire face à une syntaxe moins stricte.)
URI a = new URI("http://www.foo.com");
URI b = new URI("bar.html");
URI c = a.resolve(b);
c.toString() -> "http://www.foo.combar.html"
c.getAuthority() -> "www.foo.com"
c.getPath() -> "bar.html"
toString de URI() ne se comporte pas comme vous pouvez attendre , mais étant donné sa nature générale, il se peut qu'il soit pardonné. Malheureusement, la méthode toURL() de URI ne se comporte pas comme j'aurais souhaité vous donner ce que vous voulez.
URL u = c.toURL();
u.toString() -> "http://www.foo.combar.html"
u.getAuthority() -> "www.foo.combar.html" --- Oh dear :(
donc mieux que de commencer directement avec une URL pour obtenir ce que vous voulez:
URL x = new URL("http://www.foo.com");
URL y = new URL(x, "bar.html");
y.toString() -> "http://www.foo.com/bar.html"
Quelle a été la sortie que vous attendiez? –
"http://www.foo.com/bar.html" aurait été bien. – Cpa
Pourquoi utilisez-vous deux URI? Il doit y avoir une raison, mais ce n'est pas clair. –