博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React-Native中网络请求的总结
阅读量:5966 次
发布时间:2019-06-19

本文共 3824 字,大约阅读时间需要 12 分钟。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/50916511

转载请标明出处:本文出自:【李东的博客】

前几篇文章写了关于React-Native中自己遇到的this的问题和组件嵌套的问题做了总结。今天要写的是关于React-Native中的网络请求的实现。

1.get的请求方式的实现

//get请求  static  get(url, callback) {      fetch(url)      .then((response) => response.text())      .then((responseText) => {        callback(JSON.parse(responseText));      }).done();    }

get请求很是简单基本就是这样,再不多说了。

2.Post请求的实现

post请求我在这里写了两种形式,一种是Content-Type为application/json的形式,另一种是Content-Type为application/x-www-form-urlencoded。

2.1 application/json的形式

static postJson (url, data, callback) {    var fetchOptions = {      method: 'POST',      headers: {        'Accept': 'application/json',        //json形式        'Content-Type': 'application/json'      },      body: JSON.stringify(data)    };  fetch(url, fetchOptions)    .then((response) => response.text())    .then((responseText) => {      callback(JSON.parse(responseText));    }).done();  }

2.2 application/x-www-form-urlencoded的形式

static  postFrom(url, data, callback) {      var fetchOptions = {        method: 'POST',        headers: {          'Accept': 'application/json',          //表单          'Content-Type': 'application/x-www-form-urlencoded'        },        body:'data='+data+''      };      fetch(url, fetchOptions)      .then((response) => response.text())      .then((responseText) => {        callback(JSON.parse(responseText));      }).done();    }

3 NetUtil的实现

/** * NetUitl 网络请求的实现 * @author lidong * @date 2016-03-17  * https://github.com/facebook/react-native */'use strict';import React, {  Component,} from 'react-native';class NetUitl extends React.Component {
//post请求 /** *url :请求地址 *data:参数 *callback:回调函数 */ static postFrom(url, data, callback) { var fetchOptions = { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' }, body:'data='+data+''//这里我参数只有一个data,大家可以还有更多的参数 }; fetch(url, fetchOptions) .then((response) => response.text()) .then((responseText) => { callback(JSON.parse(responseText)); }).done(); } /** *url :请求地址 *data:参数(Json对象) *callback:回调函数 */static postJson (url, data, callback) { var fetchOptions = { method: 'POST', headers: { 'Accept': 'application/json', //json形式 'Content-Type': 'application/json' }, body: JSON.stringify(data) }; fetch(url, fetchOptions) .then((response) => response.text()) .then((responseText) => { callback(JSON.parse(responseText)); }).done(); } //get请求 /** *url :请求地址 *callback:回调函数 */ static get(url, callback) { fetch(url) .then((response) => response.text()) .then((responseText) => { callback(JSON.parse(responseText)); }).done(); }}module.exports = NetUitl;

4. 调用方法:

4.1 get的调用方法:

NetUtil.get("http://v.juhe.cn/weather/index?format="+format+"&key="+key+"&cityname="+cityname,function  (ret) {
//回调的结果处理; })

4.2 postJson的调用

let data={
'username':'123','password':'123456','token':'HSHSIHIFAUINNSNAFKSKJFNKFKFNFNFNK'};NetUitl.postJson(url,,function (set){
switch (set.retCode) { case "0000": alert("登录成功"); break; case "0001": alert("登录失败"); break; default: alert("登录失败"); } });

4.3postFrom的调用

let url = Global.LOGIN;  let map = new Map()  map.set('username',phone);  map.set('password',pwd);  let sx = Util.mapToJson(Util.tokenAndKo(map));  NetUitl.postFrom(url,sx,function (set){    switch (set.retCode) {      case "0000":          alert("登录成功");        break;     case "0001":        alert("登录失败");          break;      default:      alert("登录失败");    }  });

以上就是React-Native中的网络请求的实现,欢迎大家来共同学习,有问题可以联系QQ:1561281670

这里是我的一个学习React-Native的开源库:

你可能感兴趣的文章
输入/输出流介绍
查看>>
产品经理应聘之感受漫谈
查看>>
第39周四
查看>>
ylbtech_dbs_article_五大主流数据库模型
查看>>
Java并发专题 带返回结果的批量任务运行 CompletionService ExecutorService.invokeAll
查看>>
10行Python代码解决约瑟夫环(模拟)
查看>>
一个简单好用的日志框架NLog
查看>>
超级硬盘数据恢复软件 4.6.5.0注冊码破解版
查看>>
一款基于jquery和css3实现的摩天轮式分享按钮
查看>>
Android创建启动画面
查看>>
Linux中date命令的各种实用方法--转载
查看>>
iOS: 为画板App增加 Undo/Redo(撤销/重做)操作
查看>>
<<APUE>> 线程的分离状态
查看>>
Hive创建外部表以及分区
查看>>
设置SVN忽略文件和文件夹(文件夹)
查看>>
IT项目管理-----给年轻工程师的十大忠告
查看>>
mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
查看>>
玩家游戏状态
查看>>
Android 小技巧-- TextView与EditText 同步显示
查看>>
苹果企业版帐号申请记录
查看>>