Retrofit的Get與Post請求
Retrofit無疑是當下最流行的Android網路請求框架了,是Square提供的開源產品。官方網站是這樣介紹Retrofit的—-A type-safe HTTP client for Android and Java,為Android平臺的應用提供一個型別安全的HTTP客戶端。Retrofit 是一套註解形式的網路請求封裝庫,它的強大在於讓程式碼結構更加清晰,它可以直接解析JSON資料變成JAVA物件,支援回撥操作,處理不同的結果。
2.準備工作
新增依賴:
在AndroidStudio的專案中,在build.gradle檔案中新增以下引用:
compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依賴包 //ScalarsConverterFactory.create()
資料準備:
使用okhttp請求網路資料的時候,我們需要把伺服器返回的JSON資料手動轉換成我們的Java物件。而在上文我們提到,Retrofit可以直接解析JSON資料變成JAVA物件,這也是Retrofit靈活與強大的體現。看看怎麼實現的
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
首先新增以上引用,這裡除了gson以外,還有其他的選擇。Retrofit自動轉化的核心就是根據伺服器返回的json資料定製一個javabean,舉個例子:
伺服器返回的很常見的一種資料型別,jsonobject物件裡面包括一個jsonarray陣列,數組裡麵包括很多jsonobject物件。我們需要拿到的就是這些jsonobject裡的id與name的。看看定製的javabean該怎麼寫:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public class
CityManager {
private List<CityBean>
cities;
public List<CityBean>
getCities() { return cities;
}
public void
setCities(List<CityBean> cities) {
this .cities
= cities;
}
public class
CityBean {
private String
id;
private String
name;
public String
getId() {
return id;
}
public void
setId(String id) {
this .id
= id;
}
public String
getName() {
return name;
}
|