Axios是一个基于Promise的HTTP客户端,可用于浏览器和node.js中。它可以用于发出XMLHttpRequests,也可以用于封装网络请求。本文将介绍如何使用Axios封装网络请求。
1. 安装Axios
我们需要安装Axios,在安装之前,请确保你的系统中已经安装了Node.js和npm。安装Axios的命令如下:
$ npm install axios
2. 创建Axios实例
我们需要创建一个Axios实例,该实例可以用于发出请求,它可以接受一个配置对象,其中包括请求的URL、请求方法、请求头等信息。创建Axios实例的代码如下:
const axios = require('axios');
const instance = axios.create({
baseURL: 'http://example.com',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
3. 封装请求
我们可以使用该实例封装请求了,Axios提供了多种请求方法,例如get、post、put、delete等,我们可以根据自己的需求来选择合适的请求方法。下面是一个简单的get请求的示例:
instance.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
// 处理响应数据
})
.catch(function (error) {
// 处理错误
});
上面的代码中,我们使用Axios实例发出了一个get请求,请求的URL为/user,并且将参数ID设置为12345。如果请求成功,将会调用then方法,在then方法中可以处理响应数据,如果请求失败,将会调用catch方法,在catch方法中可以处理错误。
4. 封装响应
在处理响应数据时,我们可以将响应数据封装成更加友好的格式,例如:
instance.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
// 封装响应数据
const res = {
code: 0,
data: response.data,
message: 'success'
}
return res;
})
.catch(function (error) {
// 处理错误
});
上面的代码中,我们将响应数据封装成了一个对象,其中包括code、data和message三个字段,我们可以根据自己的需求来自定义响应数据的格式。
5. 封装请求函数
我们可以将上面的代码封装成一个函数,以便在项目中多次使用,封装函数的代码如下:
function request(url, params) {
return instance.get(url, {
params
})
.then(function (response) {
// 封装响应数据
const res = {
code: 0,
data: response.data,
message: 'success'
}
return res;
})
.catch(function (error) {
// 处理错误
});
}
上面的代码中,我们将Axios实例的get请求封装成了一个函数,函数接受两个参数,一个是请求的URL,另一个是请求的参数,函数将返回一个Promise对象,当请求成功时,将会返回封装的响应数据,当请求失败时,将会返回错误信息。
:使用Axios封装网络请求,需要安装Axios,创建Axios实例,使用该实例发出请求,并封装响应数据,将请求封装成函数,以便在项目中多次使用。