基於Promise封裝uni-app的request方法,h5和小程序均可使用
特別之處
-
支持Promise API
-
攔截請求和響應
-
轉換請求和響應數據
-
取消請求
-
自動轉換為JSON數據
-
超時請求
-
告別callback
-
支持默認請求前綴
-
支持並發請求
特別之處
uni-app
框架中
安裝
npm install uni-request --save
文件中引用
import uniRequest from 'uni-request';
使用方法
請求方法的別名
uniRequest.request(config)
uniRequest.get(url[, config])
uniRequest.delete(url[, config])
uniRequest.head(url[, config])
uniRequest.options(url[, config])
uniRequest.post(url[, data[, config]])
uniRequest.put(url[, data[, config]])
uniRequest.patch(url[, data[, config]])
全局配置
uniRequest.defaults.baseURL = 'https://yourapi.domain.com';
uniRequest.defaults.headers.common['Authorization'] = AUTH_TOKEN;
uniRequest.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
全局攔截
// 請求攔截
uniRequest.interceptors.request.use(
request => {
//配置基本信息
return request;
},
err => {
console.log('請求失敗');
return Promise.reject(err);
});
// 響應攔截
uniRequest.interceptors.response.use(function(response) {
console.log('返回進入攔截成功')
return Promise.resolve(response);
}, function(error) {
console.log('返回進入攔截失敗')
return Promise.reject(error);
});
發送Get請求
// 向具有給定ID的用戶發出請求
uniRequest.get('/user?id=12345')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
// 可選地,上面的請求也可以按照
uniRequest.get('/user', {
data: {
id: 'number'
}
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
// 想要使用 async/await? 將`async`關鍵字添加到外部函數/method
async function getUser() {
try {
const response = await uniRequest.get('/user?ID=12345');
console.log(response);
} catch (error) {
console.error(error);
}
}
發送Post請求
uniRequest.post('/user', {
firstname: 'firstname',
lastname: 'lastname'
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});