React Native 网络请求 fetch 简单封装 本篇文章主要介绍了 React Native 网络请求 fetch 的简单封装,旨在提高开发效率和代码质量。在原生应用开发中,为了方便业务开发人员使用,我们一般会对网络库进行一些上传封装,而不是直接使用。 fetch 请求封装的必要性 在前端开发中,一般使用 fetch 进行网络请求。其实对于开发来说,系统提供的 fetch 已经够用了,但是为了代码的整体结构,建议对 fetch 进行简单的 Get/Post 封装。若不封装,我们看一下传统的写法,例如: fetch('http://www.pintasty.cn/home/homedynamic', { method: 'POST', headers: { 'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJVLTliZGJhNjBjMjZiMDQwZGJiMTMwYWRhYWVlN2FkYTg2IiwiZXhwaXJhdGlvblRpbWUiOjE0NzUxMTg4ODU4NTd9.ImbjXRFYDNYFPtK2_Q2jffb2rc5DhTZSZopHG_DAuNU' }, body: JSON.stringify({ 'start': '0', 'limit': '20', 'isNeedCategory': true, 'lastRefreshTime': '2016-09-25 09:45:12' }) }) .then((response) => response.json()) .then((responseData) => { alert(responseData); }) .catch((error)=> { alert('错误了'); }) 这样的写法确实看着有一种密集恐惧症,并且代码的风格也不是很好。所以,为了方便使用,我们需要将公共的部分封装起来,然后只需要通过参数的方式对外暴露出诸如请求 Url,请求参数,Header 就可以了。 HTTPUtil 封装 var HTTPUtil = {}; / * GET 请求 */ HTTPUtil.get = function(url, params, headers) { if (params) { let paramsArray = []; Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key])) if (url.search(/\?/) === -1) { url += '?' + paramsArray.join('&') } else { url += '&' + paramsArray.join('&') } } return new Promise(function (resolve, reject) { fetch(url, { method: 'GET', headers: headers, }) .then((response) => { if (response.ok) { return response.json(); } else { reject({status:response.status}) } }) .then((response) => { resolve(response); }) .catch((err)=> { reject({status:-1}); }) }) } / * POST 请求 FormData 表单数据 */ HTTPUtil.post = function(url, formData, headers) { return new Promise(function (resolve, reject) { // ... }) } 通过对 fetch 的简单封装,我们可以轻松地进行 GET 和 POST 请求,并且使代码变得更加简洁和易维护。

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 小学数学深度学习策略(1).docx
- 我国互联网企业估值研究(1).docx
- 软件销售试用期工作总结5篇(1).doc
- 施工项目信息化管理在施工企业中的应用(1).docx
- 电子商务专业人才培养方案-教学计划(1).doc
- 软件项目验收工作报告(1).doc
- 网上购物系统的数据库设计(1).doc
- 互联网金融个体网络借贷资金存管系统规范(1).pdf
- 超市零售管理系统超市管理零售软件哪个好(1).docx
- 基于构造超平面的两阶段决策树算法的研究的论文-计算机理论论文(1).docx
- 哈尔脑初中教育信息化发展规划(1)(1).doc
- 计算机系多媒体实验室建设方案解析(1).doc
- 高职院校教师信息化素养提高存在问题研究(1).docx
- 自动化药房盒装药品自动发药机构设计(1).doc
- 图书管理系统概要设计报告(1).doc
- 《软件工程》教学课件CH9-UML概述(1).ppt


