Fetch
網路請求
Last updated
網路請求
Last updated
React Native可以使用多種方式來進行網路請求(fetch、XMLHttpRequest等等) fetch API是基於 Promise 設計的,因此了解Promise也是有必要的,推薦閱讀 fetch返回的是Promise對象
method: 網路請求的方式(GET, POST等)。fetch默認的method為GET。
headers: 網路請求的header,裡面包含(Accept, Content-Type, token等)
body: POST請求的body。要送去server的資料
mode: 跨域設置(cors, no-cors, same-origin)
cache: 緩存選項(default, no-store, reload, no-cache, force-cache, only-if-cached)
clone(): 複製一份response
error(): 返回一個與網路相關的錯誤
redirect(): 返回一個可以重定向到某URL的response
response對象的解析方式
json(): 返回(return)一個Json對象(格式)的Promise
text(): 返回一個文字的Promise
formData(): 返回一個FormData的Promise
arrayBuffer(): 返回一個arrayBuffer的Promise
blob(): 返回一個blob的Promise
fetch方法會返回一個Promise對象,這個對象內包含了response,也就是第一個 then內的response 第一個then收到response後,透過 .json() 將response轉換成json對象的Promise並返回,也就是第二個 then 內的responseData 用 .catch 捕捉網路請求的錯誤情況
除了上面的寫法,還可以使用Request 先創建Request對象並設置後交給fetch處理,如下
在解析response時,也可以使用ES2017的 async/await
ps.此例為RN官網內的例子,並且可以到官網去實際執行看看
ps. get url 可用 來測試
1.網路方面(圖片路徑為網址、連線等) for ios http問題。 由於apple應用安全的管控,但下面的方法會將apple提供的安全保障關閉 用Xcode 打開/ios/ProjectName.xocdeproj 後點選 Info.plist 內的App Transport Security Settings(Key) => Exception Domains 案+ => 選擇Allow Arbitrary Loads 並且改為 Yes(Value) 2.Android App連線至某些網站或打某些api(url),會收不到response或是空白,請參考 ,確認下server端
刘望舒的博客 -
光強 簡書 -