HarmonyOS URL字符串解析 常用的几个方法

HarmonyOS 使用 URI字符串解析 的好处

  1. 标准化解析:HarmonyOS的URL字符串解析方法遵循相关标准(如RFC 3986),确保了对URL的标准化解析。这有助于提高解析的准确性和一致性,降低因解析错误而导致的安全风险。
  2. 简洁明了的API接口:HarmonyOS提供了简洁明了的API接口,使得开发者可以轻松地构造、解析和比较URL对象。这降低了开发难度和复杂度,提高了开发效率。
  3. 支持单独访问和修改URL组成部分:HarmonyOS的URL解析模块支持对URL的各个组成部分进行单独访问和修改。这满足了不同应用场景下的需求,使得开发者能够灵活地操作URL。
  4. 正确处理特殊字符和编码问题:在解析URL时,HarmonyOS能够正确处理特殊字符和编码问题。这避免了因解析错误而导致的安全漏洞和数据丢失等问题。
    URL代表着是统一资源定位符,本模块提供了常用的工具函数,实现了解析URL字符串和构造URL对象等功能。

URI字符串解析

1. URLParams

1. constructor

2. append

3. delete

2. URL

1. constructor

2. parseURL

3. toString

4. toJSON

导入模块

javascript 复制代码
import { url } from '@kit.ArkTS';

1. URLParams

URLParams接口定义了一些处理URL查询字符串的实用方法。

1. constructor

javascript 复制代码
constructor(init?: string[][] | Record<string, string> | string | URLParams)

URLParams的构造函数。

参数:

参数名 类型 必填 说明
init string[][] | Record<string, string> | string | URLParams 入参对象。 - string[][]:字符串二维数组 - Record<string, string>:对象列表 - string:字符串 - URLParams:对象 - 默认值:null。

使用方式:

javascript 复制代码
// 通过string[][]方式构造URLParams对象:
let objectParams = new url.URLParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
// 通过Record<string, string>方式构造URLParams对象:
let objectParams1 = new url.URLParams({"fod" : '1' , "bard" : '2'});
// 通过string方式构造URLParams对象:
let objectParams2 = new url.URLParams('?fod=1&bard=2');
// 通过url对象的search属性构造URLParams对象:
let urlObject = url.URL.parseURL('https://developer.mozilla.org/?fod=1&bard=2');
let objectParams3 = new url.URLParams(urlObject.search);
// 通过url对象的params属性获取URLParams对象:
let urlObject1 = url.URL.parseURL('https://developer.mozilla.org/?fod=1&bard=2');
let objectParams4 = urlObject1.params;

2. append

javascript 复制代码
append(name: string, value: string): void

将新的键值对插入到查询字符串。

参数:

参数名 类型 必填 说明
name string 需要插入搜索参数的键名。
value string 需要插入搜索参数的值。

使用方式:

javascript 复制代码
let urlObject = url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new url.URLParams(urlObject.search.slice(1));
paramsObject.append('fod', '3');

3. delete

javascript 复制代码
delete(name: string): void

删除指定名称的键值对

参数:

参数名 类型 必填 说明
name string 需要删除的键值名称。

使用方式:

javascript 复制代码
let urlObject = url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new url.URLParams(urlObject.search.slice(1));
paramsObject.delete('fod');

2. URL

用于解析、构造、规范、编码对应的URL字符串。

1. constructor

javascript 复制代码
constructor(url: string, base?: string | URL)

URL的构造函数。

参数:

参数名 类型 必填 说明
url string 入参对象。
base string | URL 入参字符串或者对象。 - string:字符串 - URL:字符串或对象 - 默认值是空字符串或空对象。

使用方式:

javascript 复制代码
let mm = 'https://username:password@host:8080';
let a = new url.URL("/", mm); // Output 'https://username:password@host:8080/';
let b = new url.URL(mm); // Output 'https://username:password@host:8080/';
new url.URL('path/path1', b); // Output 'https://username:password@host:8080/path/path1';
let c = new url.URL('/path/path1', b);  // Output 'https://username:password@host:8080/path/path1'; 
new url.URL('/path/path1', c); // Output 'https://username:password@host:8080/path/path1';
new url.URL('/path/path1', a); // Output 'https://username:password@host:8080/path/path1';
new url.URL('/path/path1', "https://www.exampleUrl/fr-FR/toot"); // Output https://www.exampleUrl/path/path1
new url.URL('/path/path1', ''); // Raises a TypeError exception as '' is not a valid URL
new url.URL('/path/path1'); // Raises a TypeError exception as '/path/path1' is not a valid URL
new url.URL('https://www.example.com', ); // Output https://www.example.com/
new url.URL('https://www.example.com', b); // Output https://www.example.com/

2. parseURL

javascript 复制代码
static parseURL(url: string, base?: string | URL): URL

URL静态成员函数。

参数:

参数名 类型 必填 说明
url string 入参对象。
base string | URL 入参字符串或者对象。 - string:字符串 - URL:字符串或对象 - 默认值是空字符串或空对象。

使用方式:

javascript 复制代码
let mm = 'https://username:password@host:8080';
let urlObject = url.URL.parseURL(mm);
let result = urlObject.toString(); // Output 'https://username:password@host:8080/'

3. toString

javascript 复制代码
toString(): string

将解析过后的URL转化为字符串。

返回值:

类型 说明
string 用于返回网址的字符串序列化。

使用方式:

javascript 复制代码
const urlObject = url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
let result = urlObject.toString(); // Output 'https://username:password@host:8080/directory/file?query=pppppp#qwer=da'

4. toJSON

javascript 复制代码
toJSON(): string

将解析过后的URL转化为JSON字符串。

返回值:

类型 说明
string 用于返回网址的字符串序列化。

使用方式:

javascript 复制代码
const urlObject = url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
let result = urlObject.toJSON();

如需要其他方法 请参考官方文档

制作不易 点个关注再走吧。°(°¯᷄◠¯᷅°)°。

相关推荐
加农炮手Jinx10 小时前
Flutter 组件 ubuntu_service 适配鸿蒙 HarmonyOS 实战:底层系统服务治理,构建鸿蒙 Linux 子系统与守护进程交互架构
flutter·harmonyos·鸿蒙·openharmony·ubuntu_service
里欧跑得慢10 小时前
Flutter 三方库 mobx_codegen — 自动化驱动的高性能响应式状态管理(适配鸿蒙 HarmonyOS Next ohos)
flutter·自动化·harmonyos
王码码203510 小时前
Flutter 三方库 login_client 的鸿蒙化适配指南 - 打造工业级安全登录、OAuth2 自动化鉴权、鸿蒙级身份守门员
flutter·harmonyos·鸿蒙·openharmony·login_client
星辰徐哥10 小时前
鸿蒙金融理财全栈项目——上线与运维、用户反馈、持续迭代
运维·金融·harmonyos
加农炮手Jinx10 小时前
Flutter 三方库 cloudflare 鸿蒙云边协同分发流适配精讲:直连全球高速存储网关阵列无缝吞吐海量动静态画像资源,构筑大吞吐业务级网络负载安全分流-适配鸿蒙 HarmonyOS ohos
网络·flutter·harmonyos
大雷神14 小时前
HarmonyOS APP<玩转React>开源教程十一:组件化开发概述
前端·react.js·harmonyos
国医中兴18 小时前
Flutter 三方库 dson 的鸿蒙化适配指南 - 极简的序列化魔法、在鸿蒙端实现反射式 JSON 映射实战
flutter·harmonyos·鸿蒙·openharmony
池央19 小时前
在鸿蒙上跑 AI Agent:JiuwenClaw-on-OpenHarmony 完整实战
人工智能·华为·harmonyos
互联网散修19 小时前
零基础鸿蒙应用开发第五节:基础数据类型与对象类型转换
华为·harmonyos·鸿蒙应用开发入门教程
弓.长.20 小时前
ReactNative for OpenHarmony项目鸿蒙化三方库:react-native-fast-image — 高性能图片加载组件
react native·react.js·harmonyos