@ohos.uri (URI String Parsing)

The uri module provides APIs related to URI string parsing.

NOTE

The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import uri from '@ohos.uri'  

URI

Implements a URI, which provides APIs for determining whether objects are equal as well as standard paths.

Attributes

System capability: SystemCapability.Utils.Lang

Name Type Readable Writable Description
scheme string Yes No Scheme in the URI.
userInfo string Yes No User information in the URI.
host string Yes No Host name (without the port number) in the URI.
port string Yes No Port number in the URI.
path string Yes No Path in the URI.
query string Yes No Query part in the URI.
fragment string Yes No Fragment part in the URI.
authority string Yes No Authority part in the URI.
ssp string Yes No Scheme-specific part in the URI.

Naming Rules

Naming format:

A standard URI consists of the following parts: [scheme:]scheme-specific-part[#fragment]

  • scheme: scheme component. Set this parameter as required. Example values: http, https, ftp, datashare, and dataability.
  • scheme-specific-part: specific part of the URI decoding scheme. The value consists of [//][authority][path][?query]. Set this parameter as required.
    • authority: decoding authority component of the URI. The value consists of [userinfo@]host[:port]. Set this parameter as required.
      • userinfo: user information. Set this parameter as required.
      • host: host name of the server. This parameter is mandatory when authority exists.
      • port: port number of the server. Set this parameter as required.
    • path: path information. Set this parameter as required.
    • query: query component. Set this parameter as required.
  • fragment: fragment component. Set this parameter as required.

Example URIs

const result1 = new uri.URI("ftp://ftp.aaa.bbb.ccc/dddd/eee.txt");
console.log(result1.host) // ftp.aaa.bbb.ccc
console.log(result1.fragment) // null
console.log(result1.path) // /dddd/eee.txt
console.log(result1.scheme) // ftp
console.log(result1.userInfo) // null
console.log(result1.port) // -1
console.log(result1.query) // null

const result2 = new uri.URI("gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles#fragment");
console.log(result2.host) // spinaltap.micro.umn.edu
console.log(result2.fragment) // fragment
console.log(result2.path) // /00/Weather/California/Los Angeles
console.log(result2.scheme) // gopher
console.log(result2.userInfo) // null
console.log(result2.port) //-1
console.log(result2.query) // null

const result3 = new uri.URI("datashare:///com.samples.datasharetest.DataShare/DB00/TBL00");
console.log(result3.host) // null
console.log(result3.fragment) // null
console.log(result3.path) // /com.samples.datasharetest.DataShare/DB00/TBL00
console.log(result3.scheme) // datashare
console.log(result3.userInfo) // null
console.log(result3.port) // -1
console.log(result3.query) // null

const result4 = new uri.URI("https://username:password@host:8080/directory/file?foo=1&bar=2#fragment");
console.log(result4.host) // host
console.log(result4.fragment) // fragment
console.log(result4.path) // /directory/file
console.log(result4.scheme) // https
console.log(result4.userInfo) // username:password
console.log(result4.port) // 8080
console.log(result4.query) // foo=1&bar=2

const result5 = new uri.URI("dataability:///com.example.DataAbility");
console.log(result5.host) // null
console.log(result5.fragment) // null
console.log(result5.path) // /com.example.DataAbility:
console.log(result5.scheme) // dataability
console.log(result5.userInfo) // null
console.log(result5.port) // -1
console.log(result5.query) // null

constructor

constructor(uri: string)

A constructor used to create a URI instance.

System capability: SystemCapability.Utils.Lang

Parameters

Name Type Mandatory Description
uri string Yes Input object.

Error codes

For details about the error codes, see Utils Error Codes.

ID Error Message
10200002 Invalid uri string.

Example

let mm = 'https://username:password@host:8080/directory/file?foo=1&bar=2#fragment';
new uri.URI(mm);
new uri.URI('https://username:password@host:8080');

toString

toString(): string

System capability: SystemCapability.Utils.Lang

Obtains the query string applicable to this URI.

Return value

Type Description
string Website address in a serialized string.

Example

const result = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
let result1 = result.toString();

equals(deprecated)

equals(other: URI): boolean

Checks whether this URI is the same as another URI object.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use equalsTo9+ instead.

System capability: SystemCapability.Utils.Lang

Parameters

Name Type Mandatory Description
other URI Yes URI object to compare.

Return value

Type Description
boolean Returns true if the two URIs are the same; returns false otherwise.

Example

const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
uriInstance.equals(uriInstance1);

equalsTo9+

equalsTo(other: URI): boolean

Checks whether this URI is the same as another URI object.

System capability: SystemCapability.Utils.Lang

Parameters

Name Type Mandatory Description
other URI Yes URI object to compare.

Return value

Type Description
boolean Returns true if the two URIs are the same; returns false otherwise.

Example

const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
let result = uriInstance.equalsTo(uriInstance1);

checkIsAbsolute

checkIsAbsolute(): boolean

Checks whether this URI is an absolute URI (whether the scheme component is defined).

System capability: SystemCapability.Utils.Lang

Return value

Type Description
boolean If the URI is an absolute URI, true is returned. Otherwise, false is returned.

Example

const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp');
console.log(`${uriInstance.checkIsAbsolute()}`); // true
const uriInstance1 = new uri.URI('xxx.com/suppliers.htm');
console.log(`${uriInstance1.checkIsAbsolute()}`); // false

normalize

normalize(): URI

Normalizes the path of this URI.

System capability: SystemCapability.Utils.Lang

Return value

Type Description
URI URI with the normalized path.

Example

const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp');
console.log(uriInstance.path); // /path/path1/../path2/./path3
let uriInstance1 = uriInstance.normalize();
console.log(uriInstance1.path); // /path/path2/path3