Эквивалент Parse_url в Grails / Groovy? - PullRequest
6 голосов
/ 14 июля 2011

Существует ли groovy / grails, эквивалентный PHP parse_url (http://php.net/manual/en/function.parse-url.php) или urlparse python (http://docs.python.org/library/urlparse.html), который превращает строку URL в структуру, содержащую хост, протокол, строку запроса, фрагмент, URIи т. д.

Я подумал, что это может быть в grails.org/doc/latest/api/org/codehaus/groovy/grails/web/util/WebUtils.html, но ничего не увидел.Я не думаю, что мне нужны HTTPBuilder или разные утилиты URLMapping.

Я действительно просто хочу вытащить карту из path и queryString и обработать крайние случаи (массив параметров /blah/fuzz?foo=bar&foo=baz, фрагменты /blah/fuzz?foo=bar#baz, закодированные URL для перенаправлений) правильно.

Я знаю, что могу обработать компонент PATH с помощью умного использования URLMapping, например: /blah/$code, но у меня осталось декодирование блока параметров ...

Спасибо

Ответы [ 2 ]

8 голосов
/ 14 июля 2011

Если я правильно понимаю, то, что вам действительно нужно, это старый URI класс:

new URI('http://google.com/?q=URL').query
2 голосов
/ 12 марта 2015

Расширяя ответ @Artur Nowak, возможно, вам понадобится больше усилий, чтобы получить то, что вы хотите.Вот пример:

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
...