2011-07-13 11 views
5

¿Hay un Groovy/Grails equivalente a parse_url de PHP (http://php.net/manual/en/function.parse-url.php) o urlparse de python (http://docs.python.org/library/urlparse.html) que convierte una cadena de URL en una estructura que contiene host, protocolo, querystring, fragmento, URI, etc.?Parse_url equivalent in grails/groovy?

Pensé que podría estar en el sitio grails.org/doc/latest/api/org/codehaus/groovy/grails/web/util/WebUtils.html, pero no vi nada. No creo que HTTPBuilder o utilidades URLMapping surtidas sean lo que necesito.

Realmente quiero sacar un mapa de la ruta y queryString y manejar los casos de borde (matriz de parámetros /blah/fuzz?foo=bar&foo=baz, fragmentos /blah/fuzz?foo=bar#baz, URL codificadas para redireccionamientos) correctamente.

sé que puedo manejar el componente de la ruta a través de un uso inteligente de URLMapping por ejemplo: /blah/$code, pero im dejó con la decodificación del bloque de parámetro ...

Gracias

Respuesta

7

Si he entendido bien, lo que realmente necesita es evidente vieja clase URI:

new URI('http://google.com/?q=URL').query 
1

Extendiendo respuesta @Artur Nowak, tal vez se necesita más esfuerzo para conseguir lo que quiere. Aquí hay un ejemplo:

URI dbUri = new URI('http://google.com/?q=URL') 
def username = dbUri?.getUserInfo()?.split(":")?.getAt(0) 
def password = dbUri?.getUserInfo()?.split(":")?.getAt(1) 
def host = dbUri?.getHost() 
def databaseInstance = dbUri?.getPath() 
def url = "jdbc:mysql://" + host + databaseInstance