网络请求工具类,可以实现比较常见的一些请求操作。
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.'));