React Native中的网络请求fetch和简单封装
2016-10-06 08:42
453 查看
React Native中的网络请求fetch使用方法最为简单,但却可以实现大多数的网络请求,需要了解更多的可以访问:
https://segmentfault.com/a/1190000003810652
fetch是人家已经封装好,再度封装只是基于自己项目进行的封装,这里只是基于公司项目实现一下,讲解一下回调:
封装实现:
调用:
另:因为iOS9对https的调整,需要在项目的info.plist添加Key:NSAllowsArbitraryLoads,具体方法看http://www.cnblogs.com/shaoting/p/5148323.html
完整源码下载:https://github.com/pheromone/React-Native-1
https://segmentfault.com/a/1190000003810652
/** * Sample React Native App * https://github.com/facebook/react-native * 周少停 2016-09-28 * fetch请求数据 header 参数 response转json 请求方式 */ import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, View, TouchableOpacity } from 'react-native'; var Project = React.createClass({ render() { return ( <View style={styles.container}> <TouchableOpacity onPress={this.ssss}> <Text>访问</Text> </TouchableOpacity> </View> ); }, ssss(){ fetch('http://www.pintasty.cn/home/homedynamic', { method: 'POST', headers: { //header '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()) //把response转为json .then((responseData) => { // 上面的转好的json alert(responseData); / // console.log(responseData); }) .catch((error)=> { alert('错误了'); }) } }); const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF' } }); AppRegistry.registerComponent('Project', () => Project);
fetch是人家已经封装好,再度封装只是基于自己项目进行的封装,这里只是基于公司项目实现一下,讲解一下回调:
封装实现:
/** * NetUitl 网络请求的实现 * https://github.com/facebook/react-native */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView, Image, TouchableOpacity, Platform, AsyncStorage } from 'react-native'; class NetUitl extends React.Component{ /* * get请求 * url:请求地址 * data:参数 * callback:回调函数 * */ static get(url,params,callback){ 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('&') } } //fetch请求 fetch(url,{ method: 'GET', }) .then((response) => { callback(response) }).done(); } /* * post请求 * url:请求地址 * data:参数 * callback:回调函数 * */ static post(url,params,headers,callback){ //fetch请求 fetch(url,{ method: 'POST', headers:{ 'token': headers }, body:JSON.stringify(params) }) .then((response) => response.json()) .then((responseJSON) => { callback(responseJSON) }) .done(); } } module.exports = NetUitl;
调用:
rightAction(){ let params = {'start':'0',limit:'20','isNeedCategory': true, 'lastRefreshTime': '2016-09-25 09:45:12'}; NetUitl.post('http://www.pintasty.cn/home/homedynamic',params,'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJVLTliZGJhNjBjMjZiMDQwZGJiMTMwYWRhYWVlN2FkYTg2IiwiZXhwaXJhdGlvblRpbWUiOjE0NzUxMTg4ODU4NTd9.ImbjXRFYDNYFPtK2_Q2jffb2rc5DhTZSZopHG_DAuNU',function (set) { //下面的就是请求来的数据 console.log(set) }) //get请求,以百度为例,没有参数,没有header NetUitl.get('https://www.baidu.com/','',function (set) { //下面是请求下来的数据 console.log(set) }) }
另:因为iOS9对https的调整,需要在项目的info.plist添加Key:NSAllowsArbitraryLoads,具体方法看http://www.cnblogs.com/shaoting/p/5148323.html
完整源码下载:https://github.com/pheromone/React-Native-1
相关文章推荐
- React Native中的网络请求fetch和简单封装
- React Native中的网络请求fetch和简单封装
- ReactNative 封装fetch网络请求
- React-Native学习笔记之:Fetch网络请求
- react-native网络请求Fetch中遇到的坑
- React Native 网络请求封装:使用Promise封装fetch请求
- React Native 网络请求封装:使用Promise封装fetch请求
- React-Native傻瓜式学习笔记(三):基于事件发布/订阅的网络请求工具类封装
- react-native(Fetch网络请求数据)
- React Native探索(五)使用fetch进行网络请求
- React Native 网络请求封装:使用Promise封装fetch请求
- React Native网络请求fetch简单封装
- 【React Native开发】 - fetch网络请求
- React-Native 之 GD (八)GET 网络请求封装
- React-Native 之 GD (九)POST 网络请求封装
- react native 开发框架,封装网络请求,自定义控件,常用工具类
- React-Native 之 网络请求 fetch
- React Native从零开始(七)Fetch网络请求
- react-native-io-fetch io接口请求封装
- 对Volley简单的封装,让网络请求更简单