weapp.request
weapp.request copied to clipboard
为微信小程序提供的网络请求组件,是 wx.request 的扩展,基于 Promise API,添加缓存控制
trafficstars
weapp.request
一个为微信小程序提供的,基于 wx.request 扩展的网络请求组件库。
Features
- Promise API
- 缓存控制
- 请求/响应拦截器
Install
推荐使用 npm 安装
npm install weapp.request -S
Quick Start
引入 weapp.request
const request = require('weapp.request')
-
发送一个 GET 请求
request('https://api.github.com').then(onFulfilled).catch(onRejected)因为所有的
request调用都会返回一个Promise,所以可以使用then对请求结果进行进一步处理,用catch来捕获内部抛出的错误。 -
发送一个 GET 请求,并写入缓存
request('https://api.github.com', {}, { cache: true }) -
发送一个 POST 请求
request.post('https://api.github.com', { user: 'afishhhhh' })除了 GET 请求以外,所有其他的 method 都要以
request.method的形式进行调用。根据微信官方文档的说明,以上 POST 方法且
Content-Type默认为application/json,会对数据进行 JSON 序列化。如果需要以 query string 的形式将数据发送给服务器,可以采取以下调用方法,不需要显示的将
Content-Type写为application/x-www-form-urlencoded:request.post('https://api.github.com', { form: { user: 'afishhhhh' } }) -
全局配置
配置选项 类型 说明 必填 默认值 baseUrl String/Undefined基础请求路径 否 cacheMaxAge Number/Undefined缓存有效期,时间单位为秒 否 1800 validStatusCode Function/Undefinedstatus code 合法区间,该函数接受一个参数,并返回一个 Boolean否 code => code >= 200 && code < 300request.config({ baseUrl: 'https://api.github.com' }) -
请求/响应拦截器
// 添加请求拦截器 request.interceptors.req.use(function (request) { request.header['X-Tag'] = 'weapp.request' // return request 可以显式地返回一个 request,如果没有 return,则默认返回当前 request })响应拦截器同理。
// 移除请求拦截器 request.interceptors.req.remove()
APIs
request(url, params, options)
发起一个 GET 请求。
params:请求参数,类型为 Object,非必填。
options:配置项,类型为 Object,非必填,可以有以下属性值:
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| cache | Boolean/Undefined |
否 | undefined |
undefined 表示从服务器获取最新数据,不写入缓存;true 表示优先从缓存中获取数据,如果缓存中不存在该数据或者缓存已失效,则从服务器获取数据,并写入缓存;false 表示优先从服务器获取数据,并将数据写入缓存 |
| header | 同微信官方文档 | |||
| dataType | 同微信官方文档 | |||
| responseType | 同微信官方文档 |
request.method(url, params, options)
method 可以是 get,post 等等。
request.config(options)
options:配置项,类型为 Object。
License
This code is distributed under the terms and conditions of the MIT license.