React Native Fetch網路請求
前言
- 我們使用的APP都需要從伺服器上獲取資料,那麼就必須要請求網路資料,在React-Native中可以用ajax去請求網路資料,但更多情況下是採用fetch API。
一、fetch傳送get請求
-
fetch傳送get請求
fetch(https://raw.githubusercontent.com/facebook/react-native/master/docs/MoviesExample.json) // 1.傳送請求 .then((response)=>response.json()) // 2. 把資料轉成json .then((responseJson)=>{ // 3. 根據資料處理UI介面 }) .catch((error)=>{ // 4. 捕獲到錯誤異常時呼叫 })
- fetch傳送請求,如果沒有設定請求方式,預設是get請求;
- then用於函式回撥,當上一操作完成後,就會自動執行then的回撥函式,並且自動把處理完的結果,作為引數傳遞給then的回撥函式。
-
get請求簡單封裝
module.exports = {
/**
* GET請求
* @param {請求路徑} api_url
* @param {引數列表} param
* @param {成功回撥} successBack
* @param {失敗回撥} failureBack
*/
GET:(api_url, param, successBack, failureBack)=>{
// 1. 引數拼接總串, 拼接操作符, 索引
var allParamStr = ' ', flag = '?', index = 0;
// 2. 把json物件轉成字串
var jsonStr = JSON.stringify(param);
if (jsonStr !== undefine || jsonStr !== '{}') { // 過濾
for (key in param){
if (index > 0) {
flag = '&'
}
allParamStr += mark + flag + '=' + param[key];
index++;
}
}
// 3.拼接引數
api_url += totalParamStr;
fetch(api_url)
.then((response)=>response.json())
.then((responseJson)=>{ // 成功回撥
successBack(responseJson);
})
.catch((error)=>{ // 失敗回撥
failureBack(error);
})
}
};
二、fetch傳送post請求
- fetch傳送post請求
fetch('http://192.168.0.138:3000/userlogin/', {
method: 'POST', // 請求方式
headers: { // 請求頭
'Accept': 'application/json', // 接收的是json格式資料
'Content-Type': 'application/json',
},
body: JSON.stringify({ // 把json物件轉成字串
firstParam: 'yourValue', // 要傳遞的引數
secondParam: 'yourOtherValue',
})
})
- application/json請求,案例簡單實操
module.exports = {
Post(){
fetch('http://192.168.0.138:3000/userlogin',{
method:'POST',
headers:{
'Content-Type':'application/json' // 不能寫錯
},
body:JSON.stringify({ // 把json物件轉成字串
name: 'xzh',
pwd: '12306',
})
})
.then((response)=>response.json())
.then((json)=>{
console.log(json)
})
.catch((error)=>{
console.log(error)
})
}
}
- POST請求簡單封裝
module.exports = {
/**
* POST請求
* @param {請求路徑} api_url
* @param {引數列表} param
* @param {成功回撥} success
* @param {失敗回撥} failure
*/
POST(api_url, param, success, failure) {
fetch(api_url,{
method:'POST',
headers:{
'Content-Type':'application/json'
},
body:JSON.stringify(param)
})
.then((response)=>response.json())
.then((responseJson)=>{
success(responseJson);
})
.catch((error)=>{
failure(error);
})
}
}
相關文章
- React Native 探索(五)使用 fetch 進行網路請求React Native
- React Native探索(五)使用fetch進行網路請求React Native
- iOS--React Native網路請求外掛iOSReact Native
- react native fetchReact Native
- JS 中的網路請求 AJAX, Fetch, WebSocketJSWeb
- React 快速上手 – 09 資料請求 fetchReact
- react-fetch資料傳送請求React
- React 快速上手 - 09 資料請求 fetchReact
- React 解決fetch跨域請求時session失效React跨域Session
- 取消Fetch API請求API
- Android網路請求(終) 網路請求框架RetrofitAndroid框架
- Android網路請求(3) 網路請求框架OkHttpAndroid框架HTTP
- React Native 網路層分析React Native
- React如何解決fetch跨域請求時session失效問題React跨域Session
- Android網路請求(4) 網路請求框架VolleyAndroid框架
- 網路請求了
- 網路請求優化之取消請求優化
- 使用 $fetch 進行 HTTP 請求HTTP
- HTTP網路請求原理HTTP
- iOS原生網路請求iOS
- 網路請求圖片
- 網路請求LCNetwork
- 網路資料請求
- 基於 Fetch 的請求封裝封裝
- 利用fetch方法實現Ajax請求
- 解析Fetch實現請求資料
- Fetch API HTTP請求實用指南APIHTTP
- fetch資料請求的封裝封裝
- [React Native]獲取網路狀態React Native
- Android okHttp網路請求之Get/Post請求AndroidHTTP
- Jest中Mock網路請求Mock
- OC:封裝網路請求封裝
- iOS 使用Moya網路請求iOS
- Android網路請求(2)Android
- RxJava + Retrofit完成網路請求RxJava
- iOS網路請求穿值iOS
- 網路請求框架對比框架
- js fetch非同步請求使用詳解JS非同步