Java URI.resolve
Je suis en train de résoudre deux Uri, mais c'est pas aussi simple que je voudrais qu'il soit.
URI a = new URI("http://www.foo.com");
URI b = new URI("bar.html");
Le problème, c'est que a.resolve(b).toString()
est maintenant "http://www.foo.combar.html"
. Comment puis-je sortir avec qui?
source d'informationauteur Cpa
Vous devez vous connecter pour publier un commentaire.
Sonne comme vous voudrez probablement utiliser l'URL plutôt que d'URI (qui est plus général et doit faire face à une moins stricte de la syntaxe.)
URI toString() ne se comporte pas comme vous vous en doutez, mais compte tenu de son caractère général, il est peut-être qu'il doit être pardonné.
Malheureusement URI toURL() la méthode ne se comportent pas tout à fait comme je l'aurais espéré pour vous donner ce que vous voulez.
Donc préférable de commencer directement avec une URL pour obtenir ce que vous voulez:
URI doit contenir le dernier séparateur('/') pour résoudre la façon dont vous le souhaitez:
Ok, apparaît à partir de l'URL deffinition schéma://domaine:port/chemin?query_string#fragment_id
il devrait être de 3 barres obliques avant le chemin d'accès (deux après régime et un autre avant le chemin d'accès)
2 situation peut survenir:
il y a 3 barres obliques dans votre URI => tout est OK
il y a moins de 3 barres obliques dans votre URI => vous devez ajouter la barre oblique à la fin de l'URI
il est mon snappet de code: