qurlinfo在qt5中_Qt之QUrl

简述

QUrl 类提供了一个方便的接口使用 URLs。

它可以解析和构造编码和未编码形式的 URLs。QUrl 也支持国际化域名(IDNs)。

详细描述

最常见的使用QUrl 的方式是通过构造函数来初始化,传递一个 QString 参数。

QUrl url("https://github.com/");

然而,也可以使用 setUrl()。

QUrl url;

url.setUrl("https://github.com/");

也可以逐渐地构造 URL,通过调用 setScheme()、setUserName()、setPassword()、setHost()、setPort()、setPath()、setQuery() 和 setFragment()。一些方便的函数也可供使用:setAuthority() 设置用户名、密码、主机和端口。setUserInfo() 设置用户名和密码。

URLs 可以用两种形式表示:编码或未编码。未编码形式适用于显示给用户,编码形式通常会发送到一个 Web 服务器。例如,未编码的URL "http://bühler.example.com/List of applicants.xml" 将被发送到服务器为 "http://xn--bhler-kva.example.com/List%20of%20applicants.xml" 。

可以使用 toString() 来获取 URL 人类可读的表示。这种表示方法适合以未编码形式将 URL 显示给用户。然而,编码的形式由 toEncoded() 返回,仅供内部使用,传递给 Web 服务器、邮件客户等。两种形式在技术上正确、明确地表示相同的 URL - 事实上,传递任何一种形式给 QUrl 的构造函数或使用 setUrl() 都将产生相同的 QUrl 对象。

QUrl 符合 RFC 3986 (统一资源标识符:通用的语法)中的 URL 规范,包括 RFC 1738 (统一资源定位器)中方案的扩展。如果 QUrl 中的折叠规则符合 RFC 3491 ,它还兼容 file URI specification 来自 freedesktop.org,提供使用 UTF-8(IDN 要求) 本地编码编码的文件名。

RFC 3491 是“Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)”,描述了如何准备一个国际化域名,包括对一个域名字段进行映射、正规化以及禁止性过滤等等操作。

错误检查

在 URL 解析或使用单独的 setter 函数(例如:setScheme()、setHost() 或 setPath())设置 URL 的组成部分时,QUrl 能够检测许多错误。如果解析或 setter 函数成功,任何先前记录的错误条件将被丢弃。

默认情况下, QUrl 的 setter 函数操作在 QUrl::TolerantMode 解析模式下,这意味着他们接受一些常见错误和不实数据。解析的另一种方式是 QUrl::StrictMode,这适用于进一步检查。详见 QUrl::ParsingMode 描述不同的解析模式。

QUrl 只检查符合规范的 URL。它并不试图验证被处理程序预期的高层协议的 URLs 格式。例如,下面的 URIs 都被 QUrl 认为是有效,即使在使用时他们不合理:</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值