带查询参数的 URL
如何使用从 jslib.k6.io 导入的 URL 和 URLSearchParams 来构造带/不带查询参数的 URL。
URL
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js';
import http from 'k6/http';
export default function () {
const url = new URL('https://k6.io');
url.searchParams.append('utm_medium', 'organic');
url.searchParams.append('utm_source', 'test');
url.searchParams.append('multiple', ['foo', 'bar']);
const res = http.get(url.toString());
// https://k6.io?utm_medium=organic&utm_source=test&multiple=foo%2Cbar
}
名称 | 类型 | 描述 |
---|---|---|
URLSearchParams(init) | 构造函数 | init 可选:[USVString, 对序列或记录] 之一 |
toString() | 方法 | 返回包含整个 URL 的 USVString |
hash | 属性 | 包含一个 '#' 后跟 URL 的片段标识符的 USVString。 |
host | 属性 | 一个 USVString,包含主机,即 hostname ,然后如果 URL 的端口不为空,则包含一个 ':',后跟 URL 的 port 。 |
hostname | 属性 | 包含 URL 域名的 USVString。 |
href | 属性 | 返回包含整个 URL 的 USVString。 |
origin | 属性 | 返回包含 URL 起源的 USVString,即其方案、域名和端口。 |
password | 属性 | 包含在域名之前指定的密码的 USVString。 |
pathname | 属性 | 是一个 USVString,包含一个初始的 '/',后跟 URL 的路径,不包括查询字符串或片段。 |
port | 属性 | 包含 URL 端口号的 USVString。 |
protocol | 属性 | 包含 URL 协议方案(包括末尾的 ':')的 USVString。 |
search | 属性 | 一个 USVString,指示 URL 的参数字符串;如果提供了任何参数,此字符串包含所有参数,以开头的 ? 字符开始。 |
searchParams | 属性 | 一个 URLSearchParams 对象,可用于访问在 search 中找到的各个查询参数。 |
username | 属性 | 包含在域名之前指定的用户名的 USVString。 |
URLSearchParams
import { URLSearchParams } from 'https://jslib.k6.io/url/1.0.0/index.js';
import http from 'k6/http';
export default function () {
const searchParams = new URLSearchParams([
['utm_medium', 'organic'],
['utm_source', 'test'],
['multiple', 'foo'],
['multiple', 'bar'],
]);
const res = http.get(`${'https://k6.io'}?${searchParams.toString()}`);
// https://k6.io?utm_medium=organic&utm_source=test&multiple=foo&multiple=bar
}
名称 | 类型 | 描述 |
---|---|---|
URLSearchParams(init) | 构造函数 | init 可选:[USVString, 对序列或记录] 之一 |
toString() | 方法 | 返回一个查询字符串(不包含问号)。 |
append() | 方法 | 将指定的键/值对作为新的搜索参数附加。 |
delete() | 方法 | 从所有搜索参数列表中删除给定的搜索参数及其关联的值。 |
entries() | 方法 | 返回一个迭代器,允许遍历此对象中包含的所有键/值对。 |
forEach() | 方法 | 允许通过回调函数遍历此对象中包含的所有值。 callback(value, key) 。 |
get() | 方法 | 返回与给定搜索参数关联的第一个值。 |
getAll() | 方法 | 返回与给定搜索参数关联的所有值。 |
has() | 方法 | 返回一个布尔值,指示是否存在具有指定名称的参数。 |
keys() | 方法 | 返回一个迭代器,允许遍历此对象中包含的所有键/值对的键。 |
values() | 方法 | 返回一个迭代器,允许遍历此对象中包含的所有键/值对的值。 |
set() | 方法 | 将与给定搜索参数关联的值设置为给定值。如果存在多个匹配值,此方法将删除其余的值。如果搜索参数不存在,此方法将创建它。 |
sort() | 方法 | 按键对所有键/值对(如果有)进行排序。 |