web-dev-qa-db-fra.com

Comment encoder une URL dans Groovy?

Existe-t-il une sorte de URLEncode dans Groovy?

Je ne trouve aucun utilitaire de codage d'URL String → String.

Exemple: dehydrogenase (NADP+)dehydrogenase%20(NADP%2b)

(+ au lieu de %20 serait également acceptable, car certaines implémentations le font)

50
Nicolas Raoul

Vous pouvez utiliser Java.net.URLEncoder.

Dans votre exemple ci-dessus, les crochets doivent également être encodés:

def toEncode = "dehydrogenase (NADP+)"
assert Java.net.URLEncoder.encode(toEncode, "UTF-8") == "dehydrogenase+%28NADP%2B%29"

Vous pouvez également ajouter une méthode à la métaclasse de chaîne:

String.metaClass.encodeURL = {
   Java.net.URLEncoder.encode(delegate, "UTF-8")
}

Et appelez simplement encodeURL() sur n'importe quelle chaîne:

def toEncode = "dehydrogenase (NADP+)"
assert toEncode.encodeURL() == "dehydrogenase+%28NADP%2B%29"  
95
aiolos