Retrofit 實踐,retrofit實踐
Retrofit是一套RESTful架構的Android(Java)用戶端實現,基於註解,提供JSON to POJO(Plain Ordinary Java Object,簡單Java對象),POJO to JSON,網路請求(POST,GET,PUT,DELETE等)封裝,對於網路調用的諸多細節做了封裝,是的我們在開發過程中之關注對象的調用,而不關心網路請求的細節,是網路編程變得簡單。是代碼變得更加優雅易讀。
1.包的擷取與安裝
Maven 配置
<dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.2.0</version></dependency>
Gradle 配置
compile 'com.squareup.retrofit2:retrofit:2.2.0'
直接應用Jar包
2.初始化
首先需要建立一個介面,然後配置註解
public interface APIClient { @GET("/api/movies") void movies(Callback<List<Movie>> callback);}
3.配置
Retrofit 的RestAdapter 使其組建代理程式類
OkHttpClient client = new OkHttpClient(); mRestAdapter = new RestAdapter.Builder() .setEndpoint(baseUrl) .setClient(new OkClient(client)) .build(); myApiClient = mRestAdapter.create(APIClient.class);
這裡client可以指定自己的配置執行個體,這裡我選擇的是OkClient, 當然你也可以配置其它的。上面這個配置是最簡單的配置,當然你還可以配置一些轉換器,來講請求的Json 字串轉化成對象。
4. 調用
RetrofitdemoApplication.getInstance().myApiClient.movies(new Callback<List<Movie>>() { @Override public void success(List<Movie> moves, Response response) { mMovies=moves; mListView.setAdapter(new MovieAdapter(MovieActivity.this,moves)); Response r=response; } @Override public void failure(RetrofitError error) { String s=error.getMessage(); Toast.makeText(MovieActivity.this, "get data from API failuar", Toast.LENGTH_LONG).show(); } });
這個調用方法中有兩個回掉,一個是失敗時的回掉方法,另一個是成功時的回掉方法。