網(wǎng)絡(luò)請(qǐng)求, 先想到的是dart官方維護(hù)的 http 庫. 由于我們項(xiàng)目組網(wǎng)絡(luò)請(qǐng)求都采用的表單結(jié)構(gòu), http 貌似不支持表單格式的網(wǎng)絡(luò)請(qǐng)求; 后來查看 dio 庫, 發(fā)現(xiàn)支持 FormData , 完美解決!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),外鏈,1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
官方表單網(wǎng)絡(luò)請(qǐng)求示例:
比葫蘆畫瓢, 嘗試下
dio 是一個(gè)國(guó)產(chǎn)巨佬寫的一個(gè)Flutter的網(wǎng)絡(luò)請(qǐng)求庫,寫這篇的文章的時(shí)候更新到3.x版本了。這里是他的 官方中文 使用鏈接: dio
按照原作者所說:
我這里這個(gè)時(shí)候的是一個(gè)3.0.9版本,這里的 ^ 符號(hào),表示3.多的庫比如說3.1.1啥的,也能更新下來。
dio 的原作者給了我們一個(gè)簡(jiǎn)單的例子
我們基礎(chǔ)的使用,請(qǐng)求一個(gè)URL,這里就直接是 Dio().get(".****.com") 。這樣就可以通過get方式來請(qǐng)求我們的鏈接。
在我們項(xiàng)目中,我們當(dāng)然不能直接使用 Dio().get(".****.com") 這樣的方法,那樣的話如果以后我們要更換網(wǎng)絡(luò)請(qǐng)求的庫的話,我們要修改的地方,就會(huì)非常的多。類似的問題,曾經(jīng)在iOS開發(fā)的歷史上出現(xiàn)過一次。最初的時(shí)候iOS的開發(fā)者大多使用的是一個(gè)叫 ASI 的庫,但是在過了幾年的時(shí)候,這個(gè)庫不在維護(hù)了。這時(shí)候,我們就會(huì)去找一個(gè)新的網(wǎng)絡(luò)庫來代替他。當(dāng)時(shí)如果我們有500個(gè)文件中都直接使用 ASI ,我們就需要改動(dòng)500個(gè)地方。這樣的體力和眼力消耗,實(shí)在是太驚人了。所以,我們一般會(huì)自己創(chuàng)建一個(gè)專門的 網(wǎng)絡(luò)管理 的類 NetworkManager 。在 NetworkManager 里,我們把調(diào)用方法抽取出一個(gè)基礎(chǔ)的方法,使用的時(shí)候,基于這個(gè)基礎(chǔ)的方法來調(diào)用。這樣,我們就能很方便的去進(jìn)去使用和維護(hù)。
這個(gè)時(shí)候我們就可以使用我們創(chuàng)建的類來直接調(diào)用我們的方法了。
這樣,我們的 dio 的初步使用就完成了。下一篇文章來寫 dio 的進(jìn)階使用。
Flutter 網(wǎng)絡(luò)請(qǐng)求報(bào)錯(cuò) Failed host lookup:
一、如果是iOS真機(jī)調(diào)試報(bào)錯(cuò)
1.檢查iOS是否開啟網(wǎng)絡(luò)權(quán)限(在設(shè)置中檢查一下),(如果HTTP,在info中 添加 ATS)
二、如果是Android模擬器或真機(jī)調(diào)試報(bào)錯(cuò)
在debug和release目錄中的AndroidManifest.xml中加上
uses-permission android:name="android.permission.INTERNET"/
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/
如果還是不行,執(zhí)行
flutter clean
dio的使用方式有很多,我就只選出我認(rèn)為最好用的api方式做下記錄,把get成post就是post請(qǐng)求了,網(wǎng)絡(luò)請(qǐng)求都用的百度的api,實(shí)際上的response沒有任何意義,所以只要打印出response有值即可。
1.最簡(jiǎn)單的請(qǐng)求例子,網(wǎng)絡(luò)請(qǐng)求是異步的所以用async await
2.帶有參數(shù)的get請(qǐng)求
3.自定義請(qǐng)求頭,可定義的請(qǐng)求頭dart已經(jīng)為我們提供了專門的類存了對(duì)應(yīng)的字符,引入以下庫,就能使用 HttpHeaders
一般我們請(qǐng)求接收到的數(shù)據(jù)是json格式,如'accept: application/json',我們就可以這樣自定義請(qǐng)求頭
4.使用Baseoptions
其他詳細(xì)參數(shù)設(shè)置參考如下:
當(dāng)前名稱:flutter聯(lián)網(wǎng),flutter連接服務(wù)器
網(wǎng)頁鏈接:http://m.rwnh.cn/article18/dsdhjdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、標(biāo)簽優(yōu)化、建站公司、網(wǎng)站營(yíng)銷、品牌網(wǎng)站制作、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)