加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React-Native中网络请求的总结

发布时间:2020-12-15 05:18:21 所属栏目:百科 来源:网络整理
导读:转载请标明出处:http://www.jb51.cc/article/p-qfauherj-rd.html本文出自:【李东的博客】 前几篇文章写了关于React-Native中自己遇到的this的问题和组件嵌套的问题做了总结。今天要写的是关于React-Native中的网络请求的实现。 1.get的请求方式的实现 //g et

转载请标明出处:http://www.52php.cn/article/p-qfauherj-rd.html本文出自:【李东的博客】

前几篇文章写了关于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,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,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,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的开源库:点击这里

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读