要命的Retrofic框架

作爲一個第一次接觸註解這個知識的小鳥來說,這個框架真是噩夢啊,只能一點點來了!

第一步引包

跟之前幾個框架一樣,因爲用的編輯器是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框架。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章