企業級ネットワーク要求の枠組みセットを作る.retrofit+gson+mvp(一)


企業級ネットワーク要求の枠組みセットを作る.retrofit+gson+mvp(一)
本シリーズの文章は三つの文章に分けて送ります.それぞれプロジェクトはRetrofit要求の枠組みを継承します.Gson解析のフレームワーク、MVPデザインモード.あなたが一歩ずつ企業級ネットワークAPPアーキテクチャを構築するのを助けます.
第二篇はすでに更新されました.企業級ネットワーク要求フレームセットretrofit+gson+mvp(二)リンクは以下の通りです.http://blog.csdn.net/androidmsky/article/details/52882722
Retrofitは多く言う必要はなくて、具体的な資料は行くことができます.http://square.github.io/retrofit/
しかし、初心者はretrofitがokhttpに基づく機能パッケージであることを知っておかなければなりません.@GET("/xxx/sdsd")が使えます.このようなコメントのスタイルでコードを書きます.このような安卓端のスタイルはサーバー端のスタイルに似ています.どんなスタイルでも、とにかくバックグラウンドの兄からインターフェースの文書を持ってきたら、Retrofitフレームを使ってAPPに接続しやすいです.
開発者の明さんはこの時に聞きたいかもしれません.HiさんはどんなAndroidが持っているHttpURLConnectionを使ってもいいですか?また、スレッドにハードラーを加えて、ネットでお願いします.書いたのもとてもさわやかです.フレームソースは、多くのものが原理を知ってから直接に他の書き込みのフレームを呼び出すことができます.(いくつかの開発者は原理なしに複雑なフレームを直接食べます.ブロガーはこのような行為を勧めません.)Retrofitは上記の様々な方法の統合を理解し、Retrofitは私たちに多くのことを処理してくれました.開発者はいくつかの注釈コード級を書くだけで一つのインターフェースとのドッキングができます.次は一歩ずつ集積していきます.
一.フレームを導入するとjarを導入してもいいし、遠隔倉庫を導入してもいいです.
compile files('libs/converter-gson-2.0.0.jar')
//Gson    
    compile files('libs/okhttp-3.2.0.jar')
    compile files('libs/okio-1.6.0.jar')
//          okhttp   
    compile files('libs/retrofit-2.0.2.jar')
一つのクラスを書いて、retrofitを初期化します.二つのシングルモデルと反射を利用して種類を生成する方法createServiceがあります.使ういくつかの方法も英語の字面で意味が分かります.
public class Generator {
    public static final String API_BASE_URL = "https://api.heweather.com";

    public static int DEFAULT_TIMEOUT = 10;


    public static OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
            .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
            .readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
            .build();
    private static Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(API_BASE_URL)
            .addConverterFactory(new StringConverterFactory())
            .client(client)
            .build();

    public static void ChangeURl(String url) {


        retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(new StringConverterFactory())
                .client(client)
                .build();
    }


    public static <S> S createService(Class<S> serviceClass) {
        return retrofit.create(serviceClass);
    }


}


私たちは具体的なインターフェースを書くことができます.構造がはっきりしていて、インターフェースを定義します.注釈で一つの方法を定義します.cityidは要求の中のキーの値です.
public interface TestApp{
@FormUrlEncoded
@POST("/x3/weather")
Call<ResponseBody> get(
        @Field("cityid") String cityid,
        @Field("key") String key
);
}四.呼び出し要求はメインスレッドにおいて、表示フレームがコールバック方法を設定してくれました.要求が失敗しました.要求が成功したなどです.
public void get(String id, String key) {
        TestApi api = Generator.createService(TestApi.class);
        Call<ResponseBody> call = api.get(id, key);

        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                try {
                    String msg = response.body().string();
                    mEditText.setText("OK1:"+msg);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(Call call, Throwable throwable) {

            }
        });
    }
このコードは天気インターフェースを要求する例です.テストをダウンロードできます.Githubアドレス:https://github.com/AndroidMsky/RetrofitGsonInMVP2
次はGson解析とMVP設計のモデルを発表し、ネットワーク要求APPの枠組みを完全に作り上げます.
ようこそ、加安卓開発交流群:308372687
ブロガーオリジナルは無断で転載してはいけません.