uri 類別

具有彈性、與通訊協定無關的 URI 實作。 URI 執行個體不可變。 在空白 URI 上查詢各種欄位將會傳回空字串。 在空白 URI 上查詢各種診斷成員將會傳回 false。

警告

此主題包含 C++ REST SDK 1.0 (代號名稱 "Casablanca") 的相關資訊。如果您是使用 Codeplex Casablanca 網頁 提供的較新版本,則請使用位於 http://casablanca.codeplex.com/documentation 的本機說明文件。

class uri;

Members

公用類別

名稱

描述

uri::components 類別

URI 的各種元件。 此列舉可用來指出哪個 URI 元件正在被編碼成 encode_uri_component。 這樣可以讓特定編碼作業執行。 結構描述和連接埠不允許 '%',因此不需要加以編碼。

公用建構函式

名稱

描述

uri::uri 建構函式

多載。 建立空白的 URI

公用方法

名稱

描述

uri::authority 方法

使用與這個 URI 相同的授權部分來建立新的 URI 物件,省略資源和查詢部份。

uri::decode 方法

將已編碼的字串解碼。

uri::encode_data_string 方法

將 RFC 3986 非保留字元以外的所有字元都轉換成其十六進位表示法,以將字串編碼。

uri::encode_uri 方法

根據 RFC 3986 將 URI 元件編碼。 請注意,如果是指定完整 URI,而不是個別的 URI 元件,不在非保留集合中的所有字元都會逸出。

uri::fragment 方法

取得 URI 的片段元件做為編碼字串。

uri::has_same_authority 方法

回覆其他 URI 是否具有和這個相同的授權

uri::host 方法

取得 URI 的主機元件做為編碼字串。

uri::is_authority 方法

「授權」URI 是只有結構描述、選擇性使用者資訊、主機名稱和 (選擇性) 連接埠的 URI。

uri::is_empty 方法

空白的 URI 沒有指定元件,並做為預設值

uri::is_host_loopback 方法

回送 URI 是參考主機名稱或 IP 位址的 URI,只在本機電腦上有意義。

uri::is_host_portable 方法

可攜式 URI 具有可全域解析的主機名稱 (從另一台電腦使用)。

uri::is_host_wildcard 方法

萬用字元 URI 會參照解析為本機電腦的所有主機名稱 (使用 * 或 +)

uri::is_path_empty 方法

回覆這個 URI 的路徑部分是否空白

uri::is_port_default 方法

uri::path 方法

取得 URI 的路徑元件做為編碼字串。

uri::port 方法

取得 URI 的連接埠元件。 如果未指定連接埠,則傳回 -1。

uri::query 方法

取得 URI 的查詢元件做為編碼字串。

uri::resource 方法

取得這個 URI 的路徑、查詢和片段部分,可能是空的。

uri::scheme 方法

取得 URI 的結構描述元件做為編碼字串。

uri::split_path 方法

將路徑分割成其階層元件。

uri::split_query 方法

將查詢分割成其機碼值元件。

uri::to_string 方法

以字串傳回完整 (編碼) 的 URI。

uri::user_info 方法

取得 URI 的使用者資訊元件做為編碼字串。

uri::validate 方法

驗證字串為 URI。

公用運算子

名稱

描述

uri::operator!= 運算子

uri::operator< 運算子

uri::operator== 運算子

備註

此實作接受 URI ('https://msn.com/path'),也接受 URI 相對參照 ('/path?query#frag')。 此實作不提供任何結構描述特定處理作業,範例如下:'http://path1/path'。 這是有效的 URI,但不是有效的 http-uri -- 也就是說,其語法正確,但不符合 http 結構描述的需求 (http 需要主機)。 我們可以提供此 URI,方法是允許可插入的「結構描述」原則類別,其提供額外的功能,可根據結構描述來驗證和規範化 URI,並針對不同結構描述 (因而不同語意) 的 URI 導入類型安全層級。 實作與結構描述無關的 URI 設備有一個問題,那就是比較相等性的問題。 例如,下列 URI 被視為相等:'https://msn.com'、'https://msn.com:80'。 也就是說,「預設」連接埠可以省略,也可以明確指定。 我們既然沒有辦法將結構描述對應至其預設連接埠,也就沒辦法知道這些是相等的。 這只是有關結構描述特定行為的類別問題之一。

需求

**標頭:**base_uri.h

**命名空間:**web::http

請參閱

參考

web::http 命名空間