基于dva对http请求的进一步封装
时间: 2023-07-26 22:33:12 浏览: 104
http请求封装
在dva中,我们可以通过封装request方法来对http请求进行进一步的封装,使其更加方便和易用。
一种常见的做法是封装一个request工具函数,该函数会返回一个Promise对象,我们可以在models中的effect中使用该函数来发送网络请求。该函数可以包含一些自定义的配置参数,例如请求method、请求头、请求体等。
以下是一个基于dva的http请求封装示例代码:
```javascript
import request from 'umi-request';
function http(url, options) {
return request(url, options)
.then(response => {
if (response && response.status === 200) {
return response.data;
} else {
throw new Error('请求失败');
}
})
.catch(error => {
console.error(error);
throw error;
});
}
export default http;
```
在上面的代码中,我们封装了一个http函数,该函数接收两个参数,分别为url和options。这两个参数与request函数的参数一致。我们使用request函数发送网络请求,并在then方法中判断请求是否成功。如果成功,我们会将请求结果返回;如果失败,我们会抛出一个错误。
在使用http函数时,我们可以通过传入options参数来自定义请求配置,例如:
```javascript
http('/api/data', {
method: 'post',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
name: 'test',
age: 20
})
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
```
在上面的代码中,我们通过传入options参数来自定义请求的method、headers和body。如果请求成功,我们会在then方法中打印请求结果;如果请求失败,我们会在catch方法中打印错误信息。
阅读全文