web-dev-qa-db-ja.com

GroovyでURLをエンコードする方法は?

GroovyにはURLEncodeのようなものがありますか?

文字列→文字列URLエンコードユーティリティが見つかりません。

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

+の代わりに%20も使用できます。 some 実装がそうするように)

50
Nicolas Raoul

_Java.net.URLEncoder_を使用できます。

上記の例では、括弧もエンコードする必要があります。

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

文字列のメタクラスにメソッドを追加することもできます:

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

そして、任意の文字列でencodeURL()を呼び出すだけです:

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