vb.net - 将 URL 拆分为不同的部分 VB.Net

标签 vb.net url

我想将 URL 拆分为不同的组件,类似于 JavaScript 中的位置对象。我想要的部分是:哈希、主机、主机名、路径名、端口、协议(protocol)和查询字符串。我想要拆分的 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 拆分为我所描述的部分?

最佳答案

使用内置类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

关于vb.net - 将 URL 拆分为不同的部分 VB.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975229/

相关文章:

php - 为 URL 中的同一 GET 变量传递多个值

amazon-web-services - 如何确保我的 http ://ec2-**-**-***. ap-south-1.compute.amazonaws.com 指向我的域?

mysql - 在 VB 中从 MySQL 数据库获取第一个条目

asp.net - 当 IsApproved 为 false 时验证 ASP.NET 成员资格用户名和密码

vb.net - Linq to Object 查询 vb.net 中的求和

PHP 从 url 中去除域名

vb.net - 如何在VB.NET或VB中压缩大型MP3文件以减小其大小和声音质量?

vb.net - 这在 .NET 中正确吗?

python - 如何获取在url中传递的参数?

javascript - 通过将 HTML 元素附加到 URL 来定位页面的特定部分