zoukankan      html  css  js  c++  java
  • Retrofit的通讯方式示例

    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);
        }
    }
  • 相关阅读:
    java 网络编程入门
    正确、安全地停止SpringBoot应用服务
    spring boot application.properties文件外部配置
    logback
    基本排序算法的总结
    jqury属性操作,特殊效果
    click事件和jquery选项卡
    jquery加载方式,选择器,样式操作
    css之定位
    css中设置background属性
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/10120769.html
Copyright © 2011-2022 走看看