Parse_url 相当于 grails/groovy 吗?

发布于 2024-11-23 16:55:52 字数 760 浏览 3 评论 0原文

是否有相当于 PHP 的 parse_url 的 groovy/grails ( http://php.net/ Manual/en/function.parse-url.php ) 或 python 的 urlparse ( http://docs.python.org/library/urlparse.html )将 URL 字符串转换为包含主机、协议、查询字符串、片段、URI 等的结构?

我认为它可能在 grails.org/doc/latest/api/org/codehaus/groovy/grails/web/util/WebUtils.html 中,但没有看到任何内容。我不认为 HTTPBuilder 或各种 URLMapping 实用程序是我所需要的。

我真的只想从路径和 queryString 中提取地图并处理边缘情况(参数数组 /blah/fuzz?foo=bar&foo=baz,片段 /blah/ fuzz?foo=bar#baz,用于重定向的编码 URL)正确。

我知道我可以通过巧妙地使用 URLMapping 来处理 PATH 组件,例如: /blah/$code,但我只能解码 param 块...

谢谢

Is there a groovy/grails equivalent to PHP's parse_url ( http://php.net/manual/en/function.parse-url.php ) or python's urlparse ( http://docs.python.org/library/urlparse.html ) that turns a URL string into a struct containing host,protocol, querystring, fragment, URI, etc?

I thought it might be in the grails.org/doc/latest/api/org/codehaus/groovy/grails/web/util/WebUtils.html , but didnt see anything. I dont think HTTPBuilder or assorted URLMapping utilities are what I need.

I really just want to pull a map out of the path and queryString and handle the edge cases (array of params /blah/fuzz?foo=bar&foo=baz, fragments /blah/fuzz?foo=bar#baz, encoded URLs for redirects) correctly.

I know I can handle the PATH component via clever use of URLMapping eg: /blah/$code, but im left with decoding the param block...

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

氛圍 2024-11-30 16:55:52

如果我理解正确,您真正需要的是普通的旧 URI 类:

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

If I understand correctly, what you really need is plain old URI class:

new URI('http://google.com/?q=URL').query
新雨望断虹 2024-11-30 16:55:52

扩展@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

Extending @Artur Nowak answer, maybe you will need some more effort to get what you want. Here is an example:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文