网络请求工具类,可以实现比较常见的一些请求操作。
function get(url: string, options?: RequestOptions): Promise<Response>
url 地址
请求的配置参数,结构为
interface RequestOptions {
method?: string;
accept?: string;
contentType?: string;
customerHeaders?: { [key: string]: string };
signal?: AbortSignal | null;
progress?: (this: XMLHttpRequestUpload, ev: ProgressEvent<XMLHttpRequestEventTarget>) => any
}
请求类型,默认为 GET 或 POST
Accept 请求头的值
Content-Type 请求头的值
自定义请求头,例如
{
'X-Auth-Id': 'xxxxxx',
'X-Auth-Token': 'xxxxxx'
}
终止器的信号,用来控制终止请求任务
调用 upload 方法时在上传过程中触发的事件,返回进度参数
返回一个结果为 Response 对象的 Promise
function post(url: string, data?: BodyInit | null, options?: RequestOptions): Promise<Response>
url 地址
post 请求传递的请求正文,可以是 FormData 或者任意对象,后者会经 JSON 序列化后发送
请求的配置参数,结构如上述 get
返回一个结果为 Response 对象的 Promise
upload(url: string, data: FormData, options?: RequestOptions): Promise<XMLHttpRequest>
url 地址
upload 请求传递的请求正文,仅支持 FormData
请求的配置参数,结构如上述 get,仅使用其中 progress 与 customerHeaders
返回一个结果为 XMLHttpRequest 对象的 Promise
const request = window["lib-utility"];
request.get('https://www.baidu.com')
.then(r => r.text())
.then(text => console.log(text));
request.post('api/query', { id: 101 })
.then(r => r.json())
.then(result => console.log(result.data));
request.upload('api/upload', data, {
progress: (ev) => {
console.log(`loaded: ${ev.loaded}, total: ${ev.total}`);
}
})
.then(() => console.log('done.'));