Comment encoder L'URL dans Groovy?

Y a-t-il une sorte D'URLEncode dans Groovy?

Je ne trouve aucun utilitaire D'encodage D'URL string → String.

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

(+ au lieu de %20 serait également acceptable, comme certains implémentations de le faire)

40
demandé sur Nicolas Raoul 2012-04-17 11:59:44

1 réponses

Vous pouvez utiliser java.net.URLEncoder.

Dans votre exemple ci-dessus, les crochets doivent également être codé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 string:

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

Et appel simple encodeURL() sur n'importe quelle chaîne:

def toEncode = "dehydrogenase (NADP+)"
assert toEncode.encodeURL() == "dehydrogenase+%28NADP%2B%29"  
81
répondu aiolos 2016-11-09 17:53:21