我想在App裡處理WebService,跟主機發Http Request(Get/Post),等Response回來,然後parse完結果,秀在UI上,發現有好多工具套件,該怎麼選?
參考:
比較:Quora、stromzhang、StackOverflow1、PacketZoom、Medium、GetIt01、黑客派
分析:SmashingMagzine、簡書
教學:CSDN1、泡在網上的日子、JournalDev、綠豆湯、DevAndroid1、bng86、DevAndroid2
GitHub:okHttp、Volley、Retrofit
說明:這題有幾個部分要處理喔~
- App跟Http主機溝通的元件
- UI端跟Http處理元件的溝通
- 解析Response回來的結果
這篇就只講"1.App跟Http主機溝通的元件",不然太長了..
先說結論:選OkHttp,如果不喜歡包OkHttp,那就用Volley,完全不喜歡第三方包就HttpURLConnection。
看網路找的結果現在大概會有以下選擇:
- HttpURLConnection:官方內建元件。
- OkHttp:Square社製作,網路上大推的元件。
- Volley:Google社製作,網路上大推的元件。
- Retorfit:Square社製作,網路上大推的元件。
其實這4個只有前2個是真的Http處理元件,後2個是包裝簡化使用的結果,
如果很早就在寫Android的朋友應該有用過apache的HttpClient,只是它在Android 6.0(API 23)被移除了,所以還在用org.apache.http.legacy的朋友應該可以考慮轉OkHttp,因為Square有做OkHttp Apache HttpClient Implementation,可以減少轉換痛苦。
[更新] HttpClient跟URLConnection的實作都被OkHttp廢棄(deprecated)了,用舊版應該是可,只是若有BUG沒人修了,原本用法可參考:HttpClient用OK、URLConnection用OK。
建議使用純okhttp3的寫法囉~
如果很早就在寫Android的朋友應該有用過apache的HttpClient,只是它在Android 6.0(API 23)被移除了,所以還在用org.apache.http.legacy的朋友應該可以考慮轉OkHttp,
[更新] HttpClient跟URLConnection的實作都被OkHttp廢棄(deprecated)了,用舊版應該是可,只是若有BUG沒人修了,原本用法可參考:HttpClient用OK、URLConnection用OK。
建議使用純okhttp3的寫法囉~
如果喜歡用Volley的,底層連接也可改用okHttp已增進效能,參考簡書這篇,只是看來有點煩。
OkHttp大致上
好處:
- 快
- 簡
- 省
壞處:
- 需額外引入com.squareup.okhttp3:okhttp
複雜的都不想說,有疑問可看參考。
再說一次結論:選OkHttp,如果不喜歡包OkHttp,那就用Volley,完全不喜歡第三方包就HttpURLConnection。
Retorfit的話,建議先用過OkHttp再用會比較理解囉
當然,這四種選哪種都很好查到範例跟資源啦...
而且都能完成GET/POST/HTTPS/憑證綁定(certificate pinning) 等工作...吧 XD
而且都能完成GET/POST/HTTPS/憑證綁定(certificate pinning) 等工作...吧 XD
沒有留言:
張貼留言