独立于协议的灵活 URI 实现。 URI 实例是不可变的。 对空 URI 查询各个字段将返回空字符串。 对空 URI 查询各种诊断成员将返回 false。
警告
本主题包含有关 C++ REST SDK 1.0 (codename "Casablanca") 的信息。如果你正在从 Codeplex Casablanca 网页 使用更高版本,则使用 http://casablanca.codeplex.com/documentation 上的本地文档。
class uri;
Members
公共类
名称 |
描述 |
---|---|
URI 的各种组件。 此枚举用于指示哪一个 URI 组件被编码为 encode_uri_component。 这允许执行特定编码。 方案和端口不允许“%”,因此不需要对其进行编码。 |
公共构造函数
名称 |
描述 |
---|---|
已重载。 创建一个空 URI |
公共方法
名称 |
描述 |
---|---|
创建授权部分与此 URI 对象相同的新 URI 对象,省略资源和查询部分。 |
|
解码已编码的字符串。 |
|
通过将所有字符(RFC 3986 非保留字符除外)转换为其十六进制表示形式来对字符串进行编码。 |
|
按照 RFC 3986 对 URI 组件进行编码。 请注意是否指定了完整的 URI,而不是未在非保留集中的所有字符都已转义的单独的 URI 组件。 |
|
获取 URI 的段组件作为已编码的字符串。 |
|
返回其他 URI 是否具有相同的授权 |
|
获取 URI 的主机组件作为已编码的字符串。 |
|
“授权”URI 是仅包含一个方案、可选用户信息、主机名和(可选)端口的 URI。 |
|
空 URI 不指定任何组件,并用作默认值 |
|
环回 URI 是指引用仅在本地计算机上有意义的主机名或 IP 地址的 URI。 |
|
可移植 URI 是指主机名可被全局解析(从另一条台计算机使用)的 URI。 |
|
通配符 URI 是指引用解析到本地计算机的所有主机名的 URI(使用 * 或 +) |
|
返回此 URI 的路径部分是否为空 |
|
获取 URI 的路径组件作为已编码的字符串。 |
|
获取 URI 的端口组件。 如果未指定端口,则返回 -1。 |
|
获取 URI 的查询组件作为已编码的字符串。 |
|
获取此 URI 的路径、查询和段部分,这些部分可能为空。 |
|
获取 URI 的方案组件作为已编码的字符串。 |
|
将路径拆分为其分层组件。 |
|
将查询拆分为其键值组件。 |
|
返回完整(已编码)URI 作为字符串。 |
|
获取 URI 的用户信息组件作为已编码的字符串。 |
|
将字符串作为 URI 进行验证。 |
公共运算符
名称 |
描述 |
---|---|
备注
此实现接受 URI ('https://msn.com/path') 和 URI 相对引用 ('/path?query#frag')。 此实现不提供任何特定于方案的处理 -- 以下是一个相关示例:'http://path1/path'。 这是一个有效的 URI,但不是有效的 HTTP URI -- 即,它在语法上是正确的,但不符合 HTTP 方案(HTTP 要求主机)。 我们可通过允许可插入“方案”策略类提供相关处理,可插入“方案”策略类具有额外的功能,可根据方案验证和规范 URI,还将为不同方案(因而有不用的语义)的 URI 引入类型安全层。 实现独立于方案的 URI 工具的一个问题是比较相等性。 例如,以下 URI 被视为是相同的:'https://msn.com'、'https://msn.com:80'。 即 --“默认”端口可被省略,也可是显式的。 由于我们无法将方案映射到其默认端口,因此我们无法知道它们是相同的。 这指示与方案特定的行为相关的一类问题。
要求
**标头:**base_uri.h
**命名空间:**web::http