码迷,mamicode.com
首页 > 其他好文 > 详细

Retrofit的通讯方式示例

时间:2018-12-14 19:58:00      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:tin   inter   code   unit   str   debug   ice   tpc   res   

Retrofit有两种通讯方式,同步和异步

异步方式:

 APIService req;
        req = RetrofitManager.getInstance().createReq(APIService.class);
        String deviceId=DeviceUtil.GetDeviceId(context);
        Call<ResponseBody> res= req.getCpDatas(GetBaoCanReqPara(deviceId,fromId));
        res.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                Log.e("", "");
                try {

同步方式:

APIService req;
req = RetrofitManager.getInstance().createReq(APIService.class);
try{
       Call<ResponseBody> res= req.CheckSignState(hashMap);
       final Response<ResponseBody> execute = res.execute();
       String json=execute.body().string();

封装类库:

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.GsonConverterFactory;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;

public class RetrofitManager {
    private static RetrofitManager mRetrofitManager;
    private Retrofit mRetrofit;

    private RetrofitManager(){
        initRetrofit();
    }

    public static synchronized RetrofitManager getInstance(){
        if (mRetrofitManager == null){
            mRetrofitManager = new RetrofitManager();
        }
        return mRetrofitManager;
    }


    private void initRetrofit() {
        HttpLoggingInterceptor LoginInterceptor = new HttpLoggingInterceptor();
        LoginInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient.Builder builder = new OkHttpClient.Builder();


        if (AppConfig.DEBUG){
            builder.addInterceptor(LoginInterceptor); //添加retrofit日志打印
        }


        builder.connectTimeout(15, TimeUnit.SECONDS);
        builder.readTimeout(20, TimeUnit.SECONDS);
        builder.writeTimeout(20, TimeUnit.SECONDS);
        builder.retryOnConnectionFailure(true);
        OkHttpClient client = builder.build();

        mRetrofit = new Retrofit.Builder()
                .baseUrl(AppConfig.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//用于返回Rxjava调用,非必须
                .client(client)
                .build();
    }

    public <T> T createReq(Class<T> reqServer){
        return mRetrofit.create(reqServer);
    }
}

 

Retrofit的通讯方式示例

标签:tin   inter   code   unit   str   debug   ice   tpc   res   

原文地址:https://www.cnblogs.com/zhaogaojian/p/10120769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!