1e41f4b71Sopenharmony_ci# @ohos.uri (URI字符串解析)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块提供URI字符串解析的相关功能。URI遵循RFC3986规范标准,该标准定义了如何编码和解析用于定位网络资源的标识符,对于非标准场景解析不支持。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## 导入模块
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```ts
13e41f4b71Sopenharmony_ciimport { uri } from '@kit.ArkTS';
14e41f4b71Sopenharmony_ci```
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci## URI
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci构造URI对象,提供判断对象相等、规范路径等方法。
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci### 属性
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 |
25e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- |
26e41f4b71Sopenharmony_ci| scheme | string | 是 | 否 | 获取URI的协议部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。|
27e41f4b71Sopenharmony_ci| userInfo | string | 是 | 否 | 获取URI的用户信息部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
28e41f4b71Sopenharmony_ci| host | string | 是 | 否 | 获取URI的主机名部分(不带端口),若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。|
29e41f4b71Sopenharmony_ci| port | string | 是 | 否 | 获取URI的端口部分。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
30e41f4b71Sopenharmony_ci| path | string | 是 | 否 | 获取URI的路径部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
31e41f4b71Sopenharmony_ci| query | string | 是 | 否 | 获取URI的查询部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
32e41f4b71Sopenharmony_ci| fragment | string | 是 | 否 | 获取URI的片段部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
33e41f4b71Sopenharmony_ci| authority | string | 是 | 否 | 获取此URI的解码权限组件部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
34e41f4b71Sopenharmony_ci| ssp | string | 是 | 否 | 获取URI的解码方案特定部分,方案特定部分是URI的一部分,它包含了特定于协议或方案的信息。<br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 |
35e41f4b71Sopenharmony_ci| encodedUserInfo<sup>12+</sup>  | string | 是   | 否   | 获取URI的编码用户信息部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。   |
36e41f4b71Sopenharmony_ci| encodedPath<sup>12+</sup>      | string | 是   | 否   | 获取URI的编码路径部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。       |
37e41f4b71Sopenharmony_ci| encodedQuery<sup>12+</sup>     | string | 是   | 否   | 获取URI的编码查询部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。      |
38e41f4b71Sopenharmony_ci| encodedFragment<sup>12+</sup>  | string | 是   | 否   | 获取URI的编码片段部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。      |
39e41f4b71Sopenharmony_ci| encodedAuthority<sup>12+</sup> | string | 是   | 否   | 获取URI的编码权限组件部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。   |
40e41f4b71Sopenharmony_ci| encodedSSP<sup>12+</sup>       | string | 是   | 否   | 获取URI的编码方案特定部分。<br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。   |
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci### 命名规则
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci**命名形式:**
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci标准uri定义主要由以下三个部分组成:
47e41f4b71Sopenharmony_ci[scheme:]scheme-specific-part[#fragment]。
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci将URI格式细化一些则可分为:
50e41f4b71Sopenharmony_ci[scheme:][//authority][path][?query][#fragment]。
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci将URI格式进一步细化可分为:
53e41f4b71Sopenharmony_ci[scheme:][//[user-info@]host[:port]][path][?query][#fragment]。
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci- scheme: 协议名,与scheme-specific-part以:进行分隔,包含scheme部分的URI为绝对URI,不包含scheme部分的URI为相对URI,根据需要填写。例如http、https、ftp、datashare等。
56e41f4b71Sopenharmony_ci- scheme-specific-part: URI的特定解码方案特定部分,位于[scheme:]和[#fragment]之间由[//][authority][path][?query]组成,此部分以/开头的为分层URI,不以/开头的为不透明URI,根据需要填写。
57e41f4b71Sopenharmony_ci    - authority: URI的解码权限组件部分。由[userinfo@]host[:port]组成,根据需要填写。
58e41f4b71Sopenharmony_ci        - userinfo: 用户信息,与host通过@进行分隔,根据需要填写。
59e41f4b71Sopenharmony_ci        - host: 服务器的主机名部分,当authority存在时,此项必填。
60e41f4b71Sopenharmony_ci        - port: 服务器端口,默认值为-1。根据需要填写。
61e41f4b71Sopenharmony_ci    - path: 路径信息,位于host与query之间以 / 进行分割,根据需要填写。
62e41f4b71Sopenharmony_ci    - query: 查询部分,位于path和fragment之间,以 ? 开头的键值对格式,以&分割键值对,以=分割键值,根据需要填写。
63e41f4b71Sopenharmony_ci- fragment: 片段部分,以#与scheme-specific-part进行分隔,根据需要填写。
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**URI示例:**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci```ts
68e41f4b71Sopenharmony_ciconst uriObj1 = new uri.URI("ftp://ftp.aaa.bbb.ccc/dddd/eee.txt");
69e41f4b71Sopenharmony_ciconsole.info(uriObj1.host) // ftp.aaa.bbb.ccc
70e41f4b71Sopenharmony_ciconsole.info(uriObj1.fragment) // null
71e41f4b71Sopenharmony_ciconsole.info(uriObj1.path) // /dddd/eee.txt
72e41f4b71Sopenharmony_ciconsole.info(uriObj1.scheme) // ftp
73e41f4b71Sopenharmony_ciconsole.info(uriObj1.userInfo) // null
74e41f4b71Sopenharmony_ciconsole.info(uriObj1.port) // -1
75e41f4b71Sopenharmony_ciconsole.info(uriObj1.query) // null
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciconst uriObj2 = new uri.URI("gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles#fragment");
78e41f4b71Sopenharmony_ciconsole.info(uriObj2.host) // spinaltap.micro.umn.edu
79e41f4b71Sopenharmony_ciconsole.info(uriObj2.fragment) // fragment
80e41f4b71Sopenharmony_ciconsole.info(uriObj2.path) // /00/Weather/California/Los Angeles
81e41f4b71Sopenharmony_ciconsole.info(uriObj2.scheme) // gopher
82e41f4b71Sopenharmony_ciconsole.info(uriObj2.userInfo) // null
83e41f4b71Sopenharmony_ciconsole.info(uriObj2.port) //-1
84e41f4b71Sopenharmony_ciconsole.info(uriObj2.query) // null
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ciconst uriObj3 = new uri.URI("datashare:///com.samples.datasharetest.DataShare/DB00/TBL00");
87e41f4b71Sopenharmony_ciconsole.info(uriObj3.host) // null
88e41f4b71Sopenharmony_ciconsole.info(uriObj3.fragment) // null
89e41f4b71Sopenharmony_ciconsole.info(uriObj3.path) // /com.samples.datasharetest.DataShare/DB00/TBL00
90e41f4b71Sopenharmony_ciconsole.info(uriObj3.scheme) // datashare
91e41f4b71Sopenharmony_ciconsole.info(uriObj3.userInfo) // null
92e41f4b71Sopenharmony_ciconsole.info(uriObj3.port) // -1
93e41f4b71Sopenharmony_ciconsole.info(uriObj3.query) // null
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ciconst uriObj4 = new uri.URI("https://username:password@host:8080/directory/file?foo=1&bar=2#fragment");
96e41f4b71Sopenharmony_ciconsole.info(uriObj4.host) // host
97e41f4b71Sopenharmony_ciconsole.info(uriObj4.fragment) // fragment
98e41f4b71Sopenharmony_ciconsole.info(uriObj4.path) // /directory/file
99e41f4b71Sopenharmony_ciconsole.info(uriObj4.scheme) // https
100e41f4b71Sopenharmony_ciconsole.info(uriObj4.userInfo) // username:password
101e41f4b71Sopenharmony_ciconsole.info(uriObj4.port) // 8080
102e41f4b71Sopenharmony_ciconsole.info(uriObj4.query) // foo=1&bar=2
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ciconst uriObj5 = new uri.URI("dataability:///com.example.DataAbility");
105e41f4b71Sopenharmony_ciconsole.info(uriObj5.host) // null
106e41f4b71Sopenharmony_ciconsole.info(uriObj5.fragment) // null
107e41f4b71Sopenharmony_ciconsole.info(uriObj5.path) // /com.example.DataAbility:
108e41f4b71Sopenharmony_ciconsole.info(uriObj5.scheme) // dataability
109e41f4b71Sopenharmony_ciconsole.info(uriObj5.userInfo) // null
110e41f4b71Sopenharmony_ciconsole.info(uriObj5.port) // -1
111e41f4b71Sopenharmony_ciconsole.info(uriObj5.query) // null
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ciconst uriObj6 = new uri.URI("https://username:my+name@host:8080/directory/my+file?foo=1&bar=2#fragment");
114e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedUserInfo) // username:my+name
115e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedPath) // /directory/my+file
116e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedQuery) // foo=1&bar=2
117e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedFragment) // fragment
118e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedAuthority) // username:my+name@host:8080
119e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedSSP) // //username:my+name@host:8080/directory/my+file?foo=1&bar=2
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_cilet uriObj7 = new uri.URI("www.abc.com:8080/directory/file?ab=pppppp#qwer=da");
122e41f4b71Sopenharmony_ciconsole.log(uriObj7.scheme) // www.abc.com
123e41f4b71Sopenharmony_ciconsole.log(uriObj7.host) // null
124e41f4b71Sopenharmony_ciconsole.log(uriObj7.port) // -1
125e41f4b71Sopenharmony_ciconsole.log(uriObj7.path) // null
126e41f4b71Sopenharmony_ciconsole.log(uriObj7.query) // null
127e41f4b71Sopenharmony_ciconsole.log(uriObj7.authority) // null
128e41f4b71Sopenharmony_ciconsole.log(uriObj7.fragment) // qwer=da
129e41f4b71Sopenharmony_ciconsole.log(uriObj7.ssp) // 8080/directory/file?ab=pppppp
130e41f4b71Sopenharmony_ciconsole.log("result:", uriObj7.checkIsAbsolute()) // result: true
131e41f4b71Sopenharmony_ci```
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci### constructor
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ciconstructor(uri: string)
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ciconstructor是URI的构造函数。
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**参数:**
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
146e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
147e41f4b71Sopenharmony_ci| uri | string | 是 | 入参对象。 |
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**错误码:**
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
154e41f4b71Sopenharmony_ci| -------- | -------- |
155e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
156e41f4b71Sopenharmony_ci| 10200002 | Invalid uri string. |
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_ci**示例:**
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci```ts
161e41f4b71Sopenharmony_cilet mm = 'https://username:password@host:8080/directory/file?foo=1&bar=2#fragment';
162e41f4b71Sopenharmony_cinew uri.URI(mm);
163e41f4b71Sopenharmony_ci```
164e41f4b71Sopenharmony_ci```ts
165e41f4b71Sopenharmony_cinew uri.URI('https://username:password@host:8080');
166e41f4b71Sopenharmony_ci```
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci### toString
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_citoString(): string
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci将URI转化为编码后的字符串。
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**返回值:**
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci| 类型 | 说明 |
182e41f4b71Sopenharmony_ci| -------- | -------- |
183e41f4b71Sopenharmony_ci| string | 返回URI的字符串序列化。 |
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci**示例:**
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci```ts
188e41f4b71Sopenharmony_ciconst result = new uri.URI('https://username:password@host:8080/directory/file?ab=pppppp#qwer da');
189e41f4b71Sopenharmony_cilet result1 = result.toString(); // https://username:password@host:8080/directory/file?ab=pppppp#qwer%20da
190e41f4b71Sopenharmony_ci```
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci### equalsTo<sup>9+</sup>
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ciequalsTo(other: URI): boolean
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci判断此URI是否与其他URI对象相等。
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci**参数:**
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
205e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
206e41f4b71Sopenharmony_ci| other | [URI](#uri) | 是 | 需要比较的URI对象。 |
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**返回值:**
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci| 类型 | 说明 |
211e41f4b71Sopenharmony_ci| -------- | -------- |
212e41f4b71Sopenharmony_ci| boolean | 返回true表示相等,否则返回false。 |
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**错误码:**
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
219e41f4b71Sopenharmony_ci| -------- | -------- |
220e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci**示例:**
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci```ts
225e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
226e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
227e41f4b71Sopenharmony_cilet result = uriInstance.equalsTo(uriInstance1); // true
228e41f4b71Sopenharmony_ci```
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci### checkIsAbsolute
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_cicheckIsAbsolute(): boolean
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_ci判断此URI是否为绝对URI(是否定义了scheme组件)。
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci**返回值:**
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci| 类型 | 说明 |
243e41f4b71Sopenharmony_ci| -------- | -------- |
244e41f4b71Sopenharmony_ci| boolean | 如果是绝对URI返回true,否则返回false。|
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci**示例:**
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci```ts
249e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp');
250e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkIsAbsolute()}`); // true
251e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('xxx.com/suppliers.htm');
252e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkIsAbsolute()}`); // false
253e41f4b71Sopenharmony_ci```
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci### normalize
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_cinormalize(): URI
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci规范化此URI的路径。
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_ci**返回值:**
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_ci| 类型 | 说明 |
269e41f4b71Sopenharmony_ci| -------- | -------- |
270e41f4b71Sopenharmony_ci| [URI](#uri) | 返回一个path被规范化后的URI对象。 |
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci**示例:**
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci```ts
275e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp');
276e41f4b71Sopenharmony_ciconsole.info(uriInstance.path); // /path/path1/../path2/./path3
277e41f4b71Sopenharmony_cilet uriInstance1 = uriInstance.normalize();
278e41f4b71Sopenharmony_ciconsole.info(uriInstance1.path); // /path/path2/path3
279e41f4b71Sopenharmony_ci```
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci### checkRelative<sup>12+</sup>
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_cicheckRelative(): boolean
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci判断此URI是否为相对URI,相对URI指的是不包含协议(scheme)部分的URI。
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci**返回值:**
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci| 类型    | 说明                                       |
294e41f4b71Sopenharmony_ci| ------- | ------------------------------------------ |
295e41f4b71Sopenharmony_ci| boolean | 如果是相对URI返回true,否则返回false。 |
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci**示例:**
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci```ts
300e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://username:password@www.qwer.com:8080?query=p");
301e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkRelative()}`); // false
302e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("/images/pic.jpg");
303e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkRelative()}`); // true
304e41f4b71Sopenharmony_ci```
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci### checkOpaque<sup>12+</sup>
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_cicheckOpaque(): boolean
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci判断此URI是否为不透明URI,方案特定部分不以“/”开头的URI为不透明的URI。
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
315e41f4b71Sopenharmony_ci
316e41f4b71Sopenharmony_ci**返回值:**
317e41f4b71Sopenharmony_ci
318e41f4b71Sopenharmony_ci| 类型    | 说明                                           |
319e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------- |
320e41f4b71Sopenharmony_ci| boolean | 如果是不透明的URI返回true,否则返回false。 |
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci**示例:**
323e41f4b71Sopenharmony_ci
324e41f4b71Sopenharmony_ci```ts
325e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/images/pic.jpg");
326e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkOpaque()}`); // false
327e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("mailto:user@example.com");
328e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkOpaque()}`); // true
329e41f4b71Sopenharmony_ci```
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ci### checkHierarchical<sup>12+</sup>
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_cicheckHierarchical(): boolean
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ci判断此URI是否为分层URI,方案特定部分以“/”开头的URI为分层的URI。相对URI也是分层的。
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci**返回值:**
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci| 类型    | 说明                                         |
344e41f4b71Sopenharmony_ci| ------- | -------------------------------------------- |
345e41f4b71Sopenharmony_ci| boolean | 如果是分层的URI返回true,否则返回false。 |
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**示例:**
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci```ts
350e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/images/pic.jpg");
351e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkHierarchical()}`); // true
352e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("mailto:user@example.com");
353e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkHierarchical()}`); // false
354e41f4b71Sopenharmony_ci```
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci### getQueryValue<sup>12+</sup>
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_cigetQueryValue(key:string): string
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci根据给定的查询关键词,从URI查询参数部分中提取出该关键词对应的第一个值,若查询参数中存在已编码过的内容,需将对应Key进行解码后获取Value。
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci**参数:**
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                    |
371e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------------- |
372e41f4b71Sopenharmony_ci| key    | string | 是   | 此URI查询参数的名称。 |
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci**返回值:**
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci| 类型   | 说明                          |
377e41f4b71Sopenharmony_ci| ------ | ----------------------------- |
378e41f4b71Sopenharmony_ci| string | 返回第一个此URI查询参数的值,若未找到对应值则返回null对象。 |
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**错误码:**
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
385e41f4b71Sopenharmony_ci| -------- | -------- |
386e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci**示例:**
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci```ts
391e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.com?param1=value1&param2=value2");
392e41f4b71Sopenharmony_ciconsole.info(uriInstance.getQueryValue("param1")); // value1
393e41f4b71Sopenharmony_cilet uriInstance1 = new uri.URI('https://www.zyy.ss?sa%3D=po%7E');
394e41f4b71Sopenharmony_ciconsole.info(uriInstance1.getQueryValue('sa=')) // po~
395e41f4b71Sopenharmony_ciconsole.info(uriInstance1.getQueryValue('abc')) // null
396e41f4b71Sopenharmony_ci```
397e41f4b71Sopenharmony_ci
398e41f4b71Sopenharmony_ci### addQueryValue<sup>12+</sup>
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_ciaddQueryValue(key:string, value:string): URI
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci在当前URI的基础上添加查询参数,并创建一个新的URI,同时保持原有URI对象不变。
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci**参数:**
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                     |
411e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------ |
412e41f4b71Sopenharmony_ci| key    | string | 是   | 需要增添查询参数的名称。 |
413e41f4b71Sopenharmony_ci| value  | string | 是   | 需要增添查询参数的值。   |
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_ci**返回值:**
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ci| 类型 | 说明                             |
418e41f4b71Sopenharmony_ci| ---- | -------------------------------- |
419e41f4b71Sopenharmony_ci| [URI](#uri)  | 返回添加查询部分后的URI对象。 |
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_ci**错误码:**
422e41f4b71Sopenharmony_ci
423e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
424e41f4b71Sopenharmony_ci
425e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
426e41f4b71Sopenharmony_ci| -------- | -------- |
427e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
428e41f4b71Sopenharmony_ci
429e41f4b71Sopenharmony_ci**示例:**
430e41f4b71Sopenharmony_ci
431e41f4b71Sopenharmony_ci```ts
432e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com");
433e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addQueryValue("param1", "hello world");
434e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // https://www.test.com?param1=hello%20world
435e41f4b71Sopenharmony_ci```
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci### addSegment<sup>12+</sup>
438e41f4b71Sopenharmony_ci
439e41f4b71Sopenharmony_ciaddSegment(pathSegment:string): URI
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ci对给定的字段进行编码并将其追加到当前URI的path字段中,并创建一个新的URI返回,同时保持原有URI对象不变。
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
446e41f4b71Sopenharmony_ci
447e41f4b71Sopenharmony_ci**参数:**
448e41f4b71Sopenharmony_ci
449e41f4b71Sopenharmony_ci| 参数名      | 类型   | 必填 | 说明               |
450e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ------------------ |
451e41f4b71Sopenharmony_ci| pathSegment | string | 是   | 需要追加到路径部分的字段。 |
452e41f4b71Sopenharmony_ci
453e41f4b71Sopenharmony_ci**返回值:**
454e41f4b71Sopenharmony_ci
455e41f4b71Sopenharmony_ci| 类型 | 说明                             |
456e41f4b71Sopenharmony_ci| ---- | -------------------------------- |
457e41f4b71Sopenharmony_ci| [URI](#uri)  | 返回已追加字段的URI对象。 |
458e41f4b71Sopenharmony_ci
459e41f4b71Sopenharmony_ci**错误码:**
460e41f4b71Sopenharmony_ci
461e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
462e41f4b71Sopenharmony_ci
463e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
464e41f4b71Sopenharmony_ci| -------- | -------- |
465e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
466e41f4b71Sopenharmony_ci
467e41f4b71Sopenharmony_ci**示例:**
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_ci```ts
470e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com");
471e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addSegment("my image.jpg");
472e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // http://www.test.com/my%20image.jpg
473e41f4b71Sopenharmony_ci```
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_ci### addEncodedSegment<sup>12+</sup>
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ciaddEncodedSegment(pathSegment:string): URI
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci通过将已编码的字段追加到当前URI的path字段中,并创建一个新的URI返回,同时保持原有URI对象不变。
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci**参数:**
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci| 参数名      | 类型   | 必填 | 说明               |
488e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ------------------ |
489e41f4b71Sopenharmony_ci| pathSegment | string | 是   | 需要追加到路径部分的编码字段。 |
490e41f4b71Sopenharmony_ci
491e41f4b71Sopenharmony_ci**返回值:**
492e41f4b71Sopenharmony_ci
493e41f4b71Sopenharmony_ci| 类型 | 说明                             |
494e41f4b71Sopenharmony_ci| ---- | -------------------------------- |
495e41f4b71Sopenharmony_ci| [URI](#uri)  | 返回已追加字段的URI对象。 |
496e41f4b71Sopenharmony_ci
497e41f4b71Sopenharmony_ci**错误码:**
498e41f4b71Sopenharmony_ci
499e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
502e41f4b71Sopenharmony_ci| -------- | -------- |
503e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
504e41f4b71Sopenharmony_ci
505e41f4b71Sopenharmony_ci**示例:**
506e41f4b71Sopenharmony_ci
507e41f4b71Sopenharmony_ci```ts
508e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com");
509e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addEncodedSegment("my%20image.jpg");
510e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // http://www.test.com/my%20image.jpg
511e41f4b71Sopenharmony_ci```
512e41f4b71Sopenharmony_ci
513e41f4b71Sopenharmony_ci### getQueryNames<sup>12+</sup>
514e41f4b71Sopenharmony_ci
515e41f4b71Sopenharmony_cigetQueryNames(): string[]
516e41f4b71Sopenharmony_ci
517e41f4b71Sopenharmony_ci获取URI查询部分中所有不重复的键。查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。
518e41f4b71Sopenharmony_ci
519e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
522e41f4b71Sopenharmony_ci
523e41f4b71Sopenharmony_ci**返回值:**
524e41f4b71Sopenharmony_ci
525e41f4b71Sopenharmony_ci| 类型        | 说明                                |
526e41f4b71Sopenharmony_ci| ----------- | ----------------------------------- |
527e41f4b71Sopenharmony_ci| string[] | 返回此URI查询部分中所有不重复键。 |
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci**示例:**
530e41f4b71Sopenharmony_ci
531e41f4b71Sopenharmony_ci```ts
532e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com?param1=value1&param2=value2");
533e41f4b71Sopenharmony_ciconst paramNames = uriInstance.getQueryNames();
534e41f4b71Sopenharmony_ciconsole.info(Array.from(paramNames).toString()); // param1,param2
535e41f4b71Sopenharmony_ci```
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ci### getQueryValues<sup>12+</sup>
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_cigetQueryValues(key:string): string[]
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci获取此URI中查询参数的所有指定键对应值的集合。若查询参数中存在已编码过的内容,需将对应Key进行解码后获取Value。
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
546e41f4b71Sopenharmony_ci
547e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
548e41f4b71Sopenharmony_ci
549e41f4b71Sopenharmony_ci**参数:**
550e41f4b71Sopenharmony_ci
551e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                    |
552e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------------- |
553e41f4b71Sopenharmony_ci| key    | string | 是   | 指定键的名称。 |
554e41f4b71Sopenharmony_ci
555e41f4b71Sopenharmony_ci**返回值:**
556e41f4b71Sopenharmony_ci
557e41f4b71Sopenharmony_ci| 类型     | 说明                                |
558e41f4b71Sopenharmony_ci| -------- | ----------------------------------- |
559e41f4b71Sopenharmony_ci| string[] | 返回此URI中查询参数内所有指定键对应值的集合,若没有找到则返回一个空字符串数组[]。 |
560e41f4b71Sopenharmony_ci
561e41f4b71Sopenharmony_ci**错误码:**
562e41f4b71Sopenharmony_ci
563e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
564e41f4b71Sopenharmony_ci
565e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
566e41f4b71Sopenharmony_ci| -------- | -------- |
567e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ci**示例:**
570e41f4b71Sopenharmony_ci
571e41f4b71Sopenharmony_ci```ts
572e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com/search?query=name&query=my");
573e41f4b71Sopenharmony_ciconsole.info(uriInstance.getQueryValues("query").toString()); // name,my
574e41f4b71Sopenharmony_ciconsole.info(JSON.stringify(uriInstance.getQueryValues("abc"))); // []
575e41f4b71Sopenharmony_ci```
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_ci### getBooleanQueryValue<sup>12+</sup>
578e41f4b71Sopenharmony_ci
579e41f4b71Sopenharmony_cigetBooleanQueryValue(key:string,defaultValue:boolean): boolean
580e41f4b71Sopenharmony_ci
581e41f4b71Sopenharmony_ci从URI查询参数中获取布尔类型的参数值。
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
584e41f4b71Sopenharmony_ci
585e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci**参数:**
588e41f4b71Sopenharmony_ci
589e41f4b71Sopenharmony_ci| 参数名       | 类型    | 必填 | 说明                                  |
590e41f4b71Sopenharmony_ci| ------------ | ------- | ---- | ------------------------------------- |
591e41f4b71Sopenharmony_ci| key          | string  | 是   | 要获取的查询参数的名称。               |
592e41f4b71Sopenharmony_ci| defaultValue | boolean | 是   | 返回的默认值。 |
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci**返回值:**
595e41f4b71Sopenharmony_ci
596e41f4b71Sopenharmony_ci| 类型    | 说明                                                                   |
597e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------- |
598e41f4b71Sopenharmony_ci| boolean | 如果指定的查询参数不存在,则返回默认值;查询参数对应第一个值为“false”或者“0”返回false,否则返回true。 |
599e41f4b71Sopenharmony_ci
600e41f4b71Sopenharmony_ci**错误码:**
601e41f4b71Sopenharmony_ci
602e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
603e41f4b71Sopenharmony_ci
604e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
605e41f4b71Sopenharmony_ci| -------- | -------- |
606e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
607e41f4b71Sopenharmony_ci
608e41f4b71Sopenharmony_ci**示例:**
609e41f4b71Sopenharmony_ci
610e41f4b71Sopenharmony_ci```ts
611e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com/search?active=true");
612e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.getBooleanQueryValue("active", false)}`); // true
613e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("https://www.test.com/search");
614e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.getBooleanQueryValue("active", false)}`); // false
615e41f4b71Sopenharmony_ciconst uriInstance2 = new uri.URI("https://www.test.com/search?active=aa&active=false");
616e41f4b71Sopenharmony_ciconsole.info(`${uriInstance2.getBooleanQueryValue("active", false)}`); // true
617e41f4b71Sopenharmony_ciconst uriInstance3 = new uri.URI("https://www.test.com/search?active=0");
618e41f4b71Sopenharmony_ciconsole.info(`${uriInstance3.getBooleanQueryValue("active", true)}`); // false
619e41f4b71Sopenharmony_ci```
620e41f4b71Sopenharmony_ci
621e41f4b71Sopenharmony_ci### clearQuery<sup>12+</sup>
622e41f4b71Sopenharmony_ci
623e41f4b71Sopenharmony_ciclearQuery(): URI
624e41f4b71Sopenharmony_ci
625e41f4b71Sopenharmony_ci清除URI路径查询部分,并创建一个新的URI,同时保持原有URI对象不变。
626e41f4b71Sopenharmony_ci
627e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
628e41f4b71Sopenharmony_ci
629e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
630e41f4b71Sopenharmony_ci
631e41f4b71Sopenharmony_ci**返回值:**
632e41f4b71Sopenharmony_ci
633e41f4b71Sopenharmony_ci| 类型 | 说明                                  |
634e41f4b71Sopenharmony_ci| ---- | ------------------------------------- |
635e41f4b71Sopenharmony_ci| [URI](#uri)  | 返回一个已被清除查询部分的URI对象。 |
636e41f4b71Sopenharmony_ci
637e41f4b71Sopenharmony_ci**示例:**
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_ci```ts
640e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com?param1=value1");
641e41f4b71Sopenharmony_ciconsole.info(uriInstance.clearQuery().toString()); // https://www.test.com
642e41f4b71Sopenharmony_ci```
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_ci### getLastSegment<sup>12+</sup>
645e41f4b71Sopenharmony_ci
646e41f4b71Sopenharmony_cigetLastSegment(): string
647e41f4b71Sopenharmony_ci
648e41f4b71Sopenharmony_ci获取此URI路径的最后一个段。每个段代表路径中的一个部分,通常通过“/”来进行分隔。对于以斜杠结尾的或者没有路径的不代表段。
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
651e41f4b71Sopenharmony_ci
652e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
653e41f4b71Sopenharmony_ci
654e41f4b71Sopenharmony_ci**返回值:**
655e41f4b71Sopenharmony_ci
656e41f4b71Sopenharmony_ci| 类型 | 说明                          |
657e41f4b71Sopenharmony_ci| ---- | ----------------------------- |
658e41f4b71Sopenharmony_ci| string  | 返回此URI路径中的最后一个段。 |
659e41f4b71Sopenharmony_ci
660e41f4b71Sopenharmony_ci**示例:**
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci```ts
663e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("content://com.test.provider/files/image.jpg");
664e41f4b71Sopenharmony_ciconsole.info(uriInstance.getLastSegment()); // image.jpg
665e41f4b71Sopenharmony_ci```
666e41f4b71Sopenharmony_ci
667e41f4b71Sopenharmony_ci### getSegment<sup>12+</sup>
668e41f4b71Sopenharmony_ci
669e41f4b71Sopenharmony_cigetSegment(): string[]
670e41f4b71Sopenharmony_ci
671e41f4b71Sopenharmony_ci获取此URI路径中的所有段。
672e41f4b71Sopenharmony_ci
673e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
674e41f4b71Sopenharmony_ci
675e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
676e41f4b71Sopenharmony_ci
677e41f4b71Sopenharmony_ci**返回值:**
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ci| 类型     | 说明                        |
680e41f4b71Sopenharmony_ci| -------- | --------------------------- |
681e41f4b71Sopenharmony_ci| string[] | 返回此URI路径中的所有段。 |
682e41f4b71Sopenharmony_ci
683e41f4b71Sopenharmony_ci**示例:**
684e41f4b71Sopenharmony_ci
685e41f4b71Sopenharmony_ci```ts
686e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/path/to/image.jpg");
687e41f4b71Sopenharmony_ciconsole.info(uriInstance.getSegment().toString()); // path,to,image.jpg
688e41f4b71Sopenharmony_ci```
689e41f4b71Sopenharmony_ci
690e41f4b71Sopenharmony_ci### createFromParts<sup>12+</sup>
691e41f4b71Sopenharmony_ci
692e41f4b71Sopenharmony_cicreateFromParts(scheme: string, ssp: string, fragment: string): URI
693e41f4b71Sopenharmony_ci
694e41f4b71Sopenharmony_ci根据提供的协议、方案特定部分以及片段部分创建一个新的URI。
695e41f4b71Sopenharmony_ci
696e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
697e41f4b71Sopenharmony_ci
698e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
699e41f4b71Sopenharmony_ci
700e41f4b71Sopenharmony_ci**参数:**
701e41f4b71Sopenharmony_ci
702e41f4b71Sopenharmony_ci| 参数名   | 类型   | 必填 | 说明                            |
703e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ------------------------------- |
704e41f4b71Sopenharmony_ci| scheme   | string | 是   | 此URI协议部分。               |
705e41f4b71Sopenharmony_ci| ssp      | string | 是   | 此URI的方案特定部分。 |
706e41f4b71Sopenharmony_ci| fragment | string | 是   | 此URI的片段部分。片段部分是URI中的一个特定部分,即“#”符号后面的部分。             |
707e41f4b71Sopenharmony_ci
708e41f4b71Sopenharmony_ci**返回值:**
709e41f4b71Sopenharmony_ci
710e41f4b71Sopenharmony_ci| 类型 | 说明                                              |
711e41f4b71Sopenharmony_ci| ---- | ------------------------------------------------- |
712e41f4b71Sopenharmony_ci| [URI](#uri)  | 返回创建的URI对象。 |
713e41f4b71Sopenharmony_ci
714e41f4b71Sopenharmony_ci**错误码:**
715e41f4b71Sopenharmony_ci
716e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
717e41f4b71Sopenharmony_ci
718e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
719e41f4b71Sopenharmony_ci| -------- | -------- |
720e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
721e41f4b71Sopenharmony_ci
722e41f4b71Sopenharmony_ci**示例:**
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ci```ts
725e41f4b71Sopenharmony_ciconst uriInstance = uri.URI.createFromParts("mailto", "no body", "top");
726e41f4b71Sopenharmony_ciconsole.info(uriInstance.toString()); // mailto:no%20body#top
727e41f4b71Sopenharmony_ci```
728e41f4b71Sopenharmony_ci
729e41f4b71Sopenharmony_ci### equals<sup>(deprecated)</sup>
730e41f4b71Sopenharmony_ci
731e41f4b71Sopenharmony_ciequals(other: URI): boolean
732e41f4b71Sopenharmony_ci
733e41f4b71Sopenharmony_ci判断此URI是否与其他URI对象相等。
734e41f4b71Sopenharmony_ci
735e41f4b71Sopenharmony_ci> **说明:**
736e41f4b71Sopenharmony_ci>
737e41f4b71Sopenharmony_ci> 从API version 8开始支持,从API version 9开始废弃,建议使用[equalsTo<sup>9+</sup>](#equalsto9)替代。
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
740e41f4b71Sopenharmony_ci
741e41f4b71Sopenharmony_ci**参数:**
742e41f4b71Sopenharmony_ci
743e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
744e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
745e41f4b71Sopenharmony_ci| other | [URI](#uri) | 是 | 需要比较的URI对象。 |
746e41f4b71Sopenharmony_ci
747e41f4b71Sopenharmony_ci**返回值:**
748e41f4b71Sopenharmony_ci
749e41f4b71Sopenharmony_ci| 类型 | 说明 |
750e41f4b71Sopenharmony_ci| -------- | -------- |
751e41f4b71Sopenharmony_ci| boolean | 返回true表示相等,否则返回false。 |
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_ci**示例:**
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci```ts
756e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
757e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
758e41f4b71Sopenharmony_ciuriInstance.equals(uriInstance1); // true
759e41f4b71Sopenharmony_ci```