作爲一個第一次接觸註解這個知識的小鳥來說,這個框架真是噩夢啊,只能一點點來了!
第一步引包
跟之前幾個框架一樣,因爲用的編輯器是Android studio,引包還真不是一般的方便啊
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
在包的依賴里加上這麼兩句話就行了
因爲不確定寫的的對不對,附上官網網址一枚,看不懂的可以自己去查官網
第二步寫接口
因爲這個框架應用場景是那種對一個網址可以傳多樣參數的,比如https://api.github.com這個接口除了可以傳Guolei1130這個參數,還可以傳owner等等,如果每一個次網絡請求都需要像OKhttp每一次都要寫一遍url,那就太麻煩了,這個的操作則是利用註解和接口的反射來進行(PS:說專業名詞就是感覺叼,然而我也不懂爲什麼可以這樣做,只明白這樣做可以達到效果,知其然而不知其所以然)。
<span style="white-space:pre"> </span>public interface GitHubService {
<span style="white-space:pre"> </span>@GET("/users/{user}")//這就是利用註解在你用GET方式請求的時候會自動給你補全一部分URL路徑,花括號裏面的有user點類似變量對應下面參數
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>Call<gitmodel> getFeed(@Path("user") String user);//這個註解的大概理解爲傳過來的的String參數會添加到上面的花括號裏
}
看註釋解釋,單看一個接口可能看不懂,慢慢來,接下去看
第三步,寫JSON對象
這就是這次框架爲什麼要引兩個依賴的原因了,需要用到GSON這個包,這時候還要提一個插件了,GsonFormat這個框架可以根據格式好的JSON數據直接寫出model對象來,超方便的啊,因爲只是一個bean類就不打上來了。
第四步,寫請求
<span style="font-size:12px;"> Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
GitHubService service = retrofit.create(GitHubService.class);
Call<gitmodel> model = service.getFeed("Guolei1130");
model.enqueue(new Callback<gitmodel>() {
@Override
public void onResponse(Response<gitmodel> response, Retrofit retrofit) {
Log.e("tag++++++++++++++++++", "onResponse: " + response.body().getLogin());
}
@Override
public void onFailure(Throwable t) {
Log.e("tag++++++++++++++++++", "onFailure: " + t.getMessage());
}
});</span>
<span style="white-space:pre"> </span>model.clone();
先創建Retrofit對象,然後跟上生成器Builder(),寫好相關的參數,請求的接口baseUrl("路徑"),addConverterFactory(GsonConverterFactory.create())將創建了Gson對象添加進響應裏,用來接收請求返回的內容。請求創建好後傳到接口裏的註解GET上,Call的意思就是撥打,也就是執行請求,把傳入的參數添加到接口的方法,執行註解,異步執行方法,剩下的就和OKhttp一樣了,因爲這個框架不能自動關閉請求,所以記得寫上clone()。這就是入門Retrofit框架。