最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React Native 使用Fetch發(fā)送網絡請求的示例代碼

 更新時間:2017年12月02日 10:23:00   作者:Vonkin  
本篇文章主要介紹了React Native 使用Fetch發(fā)送網絡請求的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們在項目中經常會用到HTTP請求來訪問網絡,HTTP(HTTPS)請求通常分為"GET"、"PUT"、"POST"、"DELETE",如果不指定默認為GET請求。

在項目中我們常用到的一般為GET和POST兩種請求方式,針對帶參數的表單提交這類的請求,我們通常會使用POST的請求方式。

為了發(fā)出HTTP請求,我們需要使用到 React Native 提供的 Fetch API 來進行實現。要從任意地址獲取內容的話,只需簡單地將網址作為參數傳遞給fetch方法即可(fetch這個詞本身也就是獲取的意思

GET

如果你想要通過 GET 方法去請求數據并轉化成 JSON,可以通過如下代碼實現:

fetch('https://facebook.github.io/react-native/movies.json')
   .then((response) => response.json())
   .then((responseJson) => {
    return responseJson.movies;
   })
   .catch((error) => {
    console.error(error);
   });

通過上面的請求把返回的 Response 轉化成 JSON Object,然后取出 JSON Object 里的 movies 字段。同時,如果發(fā)生 Error,如網絡不通或訪問連接錯誤等, 會被 .catch 。在正常的情況下,我們可以得到如下結果:

{
 "title": "The Basics - Networking",
 "description": "Your app fetched this from a remote endpoint!",
 "movies": [
  { "title": "Star Wars", "releaseYear": "1977"},
  { "title": "Back to the Future", "releaseYear": "1985"},
  { "title": "The Matrix", "releaseYear": "1999"},
  { "title": "Inception", "releaseYear": "2010"},
  { "title": "Interstellar", "releaseYear": "2014"}
 ]
}

POST(一)

當然,上面是最基本的 GET 請求,Fetch還有可選的第二個參數,可以用來定制HTTP請求一些參數。你可以指定Headers參數,或是指定使用POST方法,又或是提交數據等等:Fetch API 還支持自定義 Headers,更換 Method,添加 Body 等。

let url = "http://www.yousite.com/xxxx.ashx” 
let params = {"name":"admin","password":"admin"}; 
fetch(url, {
 method: 'POST',
 headers: {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
 },
 body: JSON.stringify(params)
})

上面構建了一個基本的 POST 請求,添加了自己的 Headers:Accept和Content-Type,添加了 Body。

POST(二)

let url = "http://www.yousite.com/xxxx.ashx”; 
let params = "username=admin&password=admin”; 
fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: params,
}).then((response) => {
  if (response.ok) {
    return response.json();
  }
}).then((json) => {
  console.log(json)
}).catch((error) => {
  console.error(error);
});

POST(三)推薦

通過上面兩種方法,我們還有一種方式可以發(fā)送POST請求,當然這種方式也是被推薦使用的。

如果你的服務器無法識別上面POST的數據格式,那么可以嘗試傳統(tǒng)的form格式,示例如下:

let REQUEST_URL = 'http://www.yousite.com/xxxx.ashx';

// `首先我們需要自己創(chuàng)建一個FormData,來存請求參數`

let parameters = new FormData();
parameters.append("mt", "30013");
parameters.append("pg", "1");
parameters.append('ps', '20');


fetch(REQUEST_URL, {
  method: 'POST',
  body: parameters
}).then(
  (result) => {
    if (result.ok) {
      console.log(result)
      result.json().then(
        (obj) => {
          console.log(obj)
        }
      )
    }
  }
).catch((error) => {
  console.log(error)
  Alert.alert('Error')
})

推薦這種方法的好處還有一個,就是可以在FormData中直接傳遞字節(jié)流實現上傳圖片的功能,代碼如下:

uploadImage(){ 
 let formData = new FormData(); 
 let file = {uri: uri, type: 'multipart/form-data', name: 'a.jpg'}; 

 formData.append("images",file); 

 fetch(url,{ 
  method:'POST', 
  headers:{ 
    'Content-Type':'multipart/form-data', 
  }, 
  body:formData, 
 }) 
 .then((response) => response.text() ) 
 .then((responseData)=>{ 

  console.log('responseData',responseData); 
 }) 
 .catch((error)=>{console.error('error',error)}); 

}


處理服務器的響應數據

上面的例子演示了如何發(fā)起請求。很多情況下,你還需要處理服務器回復的數據。
網絡請求天然是一種異步操作,Fetch 方法會返回一個Promise,這種模式可以簡化異步風格的代碼,關于Promise,請參考:Promise

處理服務器返回的數據,我們已經在上面第二種和第三種的POST請求中實現了數據的處理。具體代碼參考上面的實現代碼。

默認情況下,iOS會阻止所有非https的請求。如果你請求的接口是http協(xié)議,那么首先需要添加一個App Transport Security的例外。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • react quill中圖片上傳由默認轉成base64改成上傳到服務器的方法

    react quill中圖片上傳由默認轉成base64改成上傳到服務器的方法

    這篇文章主要介紹了react quill中圖片上傳由默認轉成base64改成上傳到服務器的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • react PropTypes校驗傳遞的值操作示例

    react PropTypes校驗傳遞的值操作示例

    這篇文章主要介紹了react PropTypes校驗傳遞的值操作,結合實例形式分析了react PropTypes針對傳遞的值進行校驗操作相關實現技巧,需要的朋友可以參考下
    2020-04-04
  • 使用React制作一個貪吃蛇游戲的代碼詳解

    使用React制作一個貪吃蛇游戲的代碼詳解

    Snake?Game?使用?ReactJS?項目實現功能組件并相應地管理狀態(tài),開發(fā)的游戲允許用戶使用箭頭鍵控制蛇或觸摸屏幕上顯示的按鈕來收集食物并增長長度,本文給大家詳細講解了如何使用?React?制作一個貪吃蛇游戲,需要的朋友可以參考下
    2023-11-11
  • react中實現搜索結果中關鍵詞高亮顯示

    react中實現搜索結果中關鍵詞高亮顯示

    這篇文章主要介紹了react中實現搜索結果中關鍵詞高亮顯示,使用react實現要比js簡單很多,方法都是大同小異,具體實現代碼大家跟隨腳本之家小編一起看看吧
    2018-07-07
  • React中setState的使用與同步異步的使用

    React中setState的使用與同步異步的使用

    這篇文章主要介紹了React中setState的使用與同步異步的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 教你快速搭建 React Native 開發(fā)環(huán)境

    教你快速搭建 React Native 開發(fā)環(huán)境

    這篇文章主要介紹了搭建 React Native 開發(fā)環(huán)境的詳細過程,本文通過圖文指令給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 使用webpack配置react-hot-loader熱加載局部更新

    使用webpack配置react-hot-loader熱加載局部更新

    這篇文章主要介紹了使用webpack配置react-hot-loader熱加載局部更新,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • React?如何向url中添加參數

    React?如何向url中添加參數

    這篇文章主要介紹了React?如何向url中添加參數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React報錯信息之Expected?an?assignment?or?function?call?and?instead?saw?an?expression

    React報錯信息之Expected?an?assignment?or?function?call?and?

    這篇文章主要介紹了React報錯之Expected?an?assignment?or?function?call?and?instead?saw?an?expression,下面有兩個示例來展示錯誤是如何產生的,需要的朋友可以參考下
    2022-08-08
  • 一文掌握React?組件樹遍歷技巧

    一文掌握React?組件樹遍歷技巧

    這篇文章主要為大家介紹了React?組件樹遍歷技巧的掌握,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04

最新評論

寿宁县| 洞头县| 宜兰市| 海南省| 兴安县| 扬州市| 醴陵市| 新宾| 吉林省| 商城县| 宁化县| 磐石市| 绥化市| 鹤山市| 始兴县| 柏乡县| 茂名市| 安国市| 东丽区| 宁乡县| 辽中县| 罗山县| 出国| 桂林市| 绥中县| 阿瓦提县| 石嘴山市| 军事| 绿春县| 儋州市| 玛纳斯县| 昌邑市| 平邑县| 西贡区| 凤山市| 富源县| 北票市| 兴国县| 成安县| 湾仔区| 佛山市|