关于React Native使用axios进行网络请求的方法
Posted 蓝色人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于React Native使用axios进行网络请求的方法相关的知识,希望对你有一定的参考价值。
在前端开发中,能够完成数据请求的方式有很多,如Ajax、jQuery ajax、axios和fetch等。不过,随着技术的发展,现在能够看到的基本上也就axios和fetch两种。
axios是一个基于Promise的Http网络库,可运行在浏览器端和Node.js中,Vue应用的网络请求基本都是使用它完成的。axios有很多优秀的特性,如支持请求的拦截和响应、取消请求、JSON自动转换、客户端防御XSRF等。
使用axios之前,需要先在项目中安装axios插件,安装命令如下。
//npm
npm install axios --save
//yarn
yarn add react-native-axios
作为一款优秀的网络请求库,axios支持基本的GET、POST、DELET和PUT等请求。比如,使用axios进行GET请求时就可以使用axios.get()方法和使用axios(config { … })两种方式,如下所示。
axios.get(\'/getData\', {
params: {
id: 123
}
}).then(function (response) {
console.log(response);
})
axios({
method: \'GET\',
url: \'/getData\',
params: {
id: 123,
}
}).then(function (response) {
console.log(response);
});
可以看到,如果直接使用axios进行网络请求会产生大量的冗余代码,所以在实际开发过程中,还需要对axios请求进行一些封装,以方便后期的使用,如下所示。
可以看到,如果直接使用axios进行网络请求会产生大量的冗余代码,所以在实际开发过程中,还需要对axios请求进行一些封装,以方便后期的使用,如下所示。
const request = axios.create({
transformResponse: [
function (data) {
return data;
const defaultOptions = { //处理默认配置
url: \'\',
userAgent: \'BIZSTREAM Library\',
authentication: {
integration: {
access_token: undefined,
class Bizstream {
init(options) {
this.configuration = {...defaultOptions, ...options};
this.base_url = this.configuration.url;
this.root_path = \'\';
}
post(path, params, data, type = ADMIN_TYPE) {
return this.send(path, \'POST\', params, data, type);
}
get(path, params, data, type = ADMIN_TYPE) {
return this.send(path, \'GET\', params, data, type);
}
send(path, method, params, data, type, headersOption) {
const url = `${this.base_url}${this.root_path}${path}`;
const headers = {
\'User-Agent\': this.configuration.userAgent,
\'Content-Type\': \'application/json\',
...headersOption,
};
return new Promise((resolve, reject) => {
request({url, method, headers, params, data}).then(response => {
…. //处理返回结果
export const bizStream = new Bizstream();
经过封装处理后,进行网络请求的时候就方便了许多,并且对于一些通用的返回结果我们也在网络层进行了处理。实际使用时,开发者只需要按照要求传入需要的参数,然后再通过异步函数处理返回的结果即可,如下所示。
//GET请求
const hotMovie=\'\';
const data = await apiRequest.get(hotMovie);
//POST请求
let baseUrl = \'\';
let param = {
pageNumber: 0,
cityCd: 31,
};
const data = await apiRequest.post(baseUrl, param);
到此这篇关于关于React Native使用axios进行网络请求的方法的文章就介绍到这了,更多相关React Native网络请求内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!
以上是关于关于React Native使用axios进行网络请求的方法的主要内容,如果未能解决你的问题,请参考以下文章
在 React Native 中使用 axios 时出现网络错误
AXIOS 调用在 React-Native 0.63 中给出网络错误
Axios 承诺处理 - 在 react-native 中获取“可能的未处理承诺拒绝 - 类型错误:网络请求失败”