url.build
url.build
功能
从对象配置构建 URL 字符串。
语法
url(config).build() url('').build(config)
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| config | Object | 否 | 构造 url 时传入的对象 | URL 配置对象。 |
config 对象字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| scheme | String | 否 | http | URL scheme,不需要写 ://。 |
| host | String | 否 | 空字符串 | 主机名或 IP。没有 host 时仍会按当前实现生成 scheme:// 开头的 URL。 |
| port | Int/String | 否 | 无 | 端口号。字段值不是 empty 或 null 时会原样转字符串拼到 host 后。 |
| path | String | 否 | / | URL 路径。不以 / 开头时会自动补 /。 |
| query | Object/String/Any | 否 | 无 | 查询字符串。Object 会按键值逐项 URL 编码;String 原样作为查询字符串;其它值先转字符串。空字符串不会写入 ?。 |
| fragment | String | 否 | 无 | URL fragment,不需要写 #;写入时会做百分号编码。 |
| username | String | 否 | 无 | 用户名。非空时会写入 username@,并做百分号编码。 |
| password | String | 否 | 无 | 密码。只有 username 非空时才会写入,并做百分号编码。 |
返回值
| 类型 | 说明 |
|---|---|
| String | 构建后的 URL。 |
代码示例
result = url({scheme: 'https', host: 'btlang.org', path: '/docs', query: {q: 'BT Lang'}}).build() // 输出:https://btlang.org/docs?q=BT%20Lang print result
注意事项
-
query为 Object 时,字段名和值都会按 URL 组件规则编码。 -
build()只做轻量字符串构建,不校验 host 是否为空,也不检查 scheme 是否真实存在。