Nicolas Raoul Nicolas Raoul - 1 month ago 29
Groovy Question

How to encode URL in Groovy?

Is there a kind of URLEncode in Groovy?

I can't find any String → String URL encoding utility.

Example:

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


(
+
instead of
%20
would also be acceptable, as some implementations do that)

Answer

You could use java.net.URLEncoder.

In your example above, the brackets must be encoded too:

def toEncode = "dehydrogenase (NADP+)"
assert java.net.URLEncoder.encode(toEncode) == "dehydrogenase+%28NADP%2B%29"

You could also add a method to string's metaclass:

String.metaClass.encodeURL = {
   java.net.URLEncoder.encode(delegate)
}

And simple call encodeURL() on any string:

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