将URL拆分为其不同的部分 VB.Net

4
我可以帮您将URL拆分成不同的组件,类似于JavaScript中的location对象。我需要的部分包括:哈希、主机、主机名、路径名、端口、协议和查询字符串。我要拆分的URL是:http://localhost:8080/settings/settings.php?setting=layout&value=normal#appearance
目前,我有以下内容:
Dim url as String = "http://localhost:8080/settings/settings.php?setting=layout&value=normal#appearance"
Dim protocol as String = url.Split("://")(0)
Dim hash = url.Split("#")(1)
Dim query as String = url.Split("?")(1).Split("#")(0)

但我认为这并不高效、可靠。我也不知道如何获取其他部分。

有没有更高效的方法来获取查询字符串?如何将URL拆分成我描述的那些部分?

1个回答

6
使用内置的 System.Uri 类,它可以自动完成所有的解析工作。
Dim url as String = "http://localhost:8080/settings/settings.php?setting=layout&value=normal#appearance"
Dim uri as New Uri(url)

使用 Uri 的实例,您可以轻松检索所有这些部分。
Dim protocol as String = uri.Scheme     ' http
Dim host as String = uri.Host           ' localhost
Dim port as Integer = uri.Port           ' 8080
Dim path as String = uri.AbsolutePath   ' /settings/settings.php
Dim querystring as String = uri.Query   ' ?setting=layout&value=normal
Dim hash as String = uri.Fragment       ' #appearance

这个 Uri 对象似乎在 C# 中被识别,但在 Excel VBA 中却没有。 :( - okorng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接