AndroidでのRetrifitの使用概要

2828 ワード

AndroidにおけるネットワークリクエストフレームワークRetrofitの使用上の注意点
1.RetrofitはOkHttpネットワークリクエストフレームワークに基づく二次パッケージであり、Okhttpを知っているパートナーであれば、Retrofitも基本的に可能である.
2.Retrofitは注釈構成要求方式を採用する:
 @GET(get  ) @POST(post  )    
@Query,           
@QueryMap,           

3.Retrofitはフレームワーク初期化要求方式を採用している:callがあり、非同期要求スレッドを表す.
具体的なコードの詳細は以下の通りです.
第一に、対応するオブジェクトのjavabeanを書いて、私は友达がすべてできると信じて、多く言わないで、ここでObjectを例に説明します
第二に、要求アドレスの識別記号を個別のクラスに書き、後期プロジェクトのメンテナンスを容易にし、コードは以下の通りである.
public class ApiUrls {
    //app       
    public  static  final String HOME="home";
}

第三に、ホームページアドレスapiを要求するインタフェースを書きます.コードは以下の通りです.
public interface XiaoKeApi {
    //         
    @GET(ApiUrls.HOME)
    Call getHomeData();
}

第四に、簡単なパッケージRetrofit、コードは以下の通りです.
public class HttpUtils {
private static XiaoKeApi xiaokeApi;
public static XiaoKeApi getApi() {
    if (xiaokeApi == null) {
            //   retrofit  
            Retrofit build = new Retrofit.Builder()
            //1.      
            .baseUrl("http://192.168.xxoo.xxoo.8080/XiaoKeService/")
            //2.  json   
        .addConverterFactory(GsonConverterFactory.create(new Gson())).build();

            //         
            xiaokeApi = build.create(XiaoKeApi.class);
    }
    return xiaokeApi;
}

第五に、簡単なコールバックcallBack方法をカプセル化する:jsonデータの解析を便利にし、コードは以下の通りである.
public class SimpleCallBack implements Callback {
@Override
public void onResponse(Call call, Response response) {
    Object body = response.body();
    String json = body.data;
    if (TextUtils.isEmpty(json)) {
        showError(0, new RuntimeException(" !      "));
    } else {
        showData(1, json);
    }
}
@Override
public void onFailure(Call call, Throwable t) {
    t.printStackTrace();
    showError(-1, t);
}
protected void showError(int i, Throwable t) {
}
protected void showData(int i, String json) {
}

  :   showError showData    ,         ,         

第六に、実際に使用されているクラスに次のコードを追加することで、Retrofitのネットワーク要求プロセスを完了することができます.
    public void onClick() {
    Call call = HttpUtils.getApi().getHomeData();
    //Callback        
    SimpleCallBack callback=new SimpleCallBack(){
        @Override
        protected void showError(int i, Throwable t) {
            super.showError(i, t);
            ---
        }

        @Override
        protected void showData(int i, String json) {
            super.showData(i, json);
            HomeData data= new Gson().fromJson(json,HomeData.class);
            ---
        }
    };
    call.enqueue(callback);
}

挨拶、Retrofitのネットリクエストフレームワークのパッケージが完成しました.読者に感謝します.さようなら.