package com.example.zhaoday10_11demo.utils; import com.example.zhaoday10_11demo.http.Api; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitManager { private static RetrofitManager mRetrofitManager; private final Retrofit mRetrofit; public RetrofitManager(String baseUrl) { mRetrofit = new Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .client(bulidOkHttpClient()) .build(); } public static RetrofitManager getDefault() { return mRetrofitManager = new RetrofitManager(Api.BASE_URL); } private OkHttpClient bulidOkHttpClient() { OkHttpClient okHttpClient = new OkHttpClient.Builder() .readTimeout(5000, TimeUnit.MILLISECONDS) .writeTimeout(5000, TimeUnit.MILLISECONDS) .connectTimeout(5000, TimeUnit.MILLISECONDS) .build(); return okHttpClient; } public <T> T create(Class<T> Clazz) { return mRetrofit.create(Clazz); } }
Ok的的单列封装
package com.example.yuekaomoni.utils; import android.os.Handler; import android.os.Looper; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.logging.HttpLoggingInterceptor; public class OkHttpUtils { private Handler handler=new Handler(Looper.myLooper()); public Handler getHandler(){ return handler; } private static OkHttpUtils okHttpUtils=new OkHttpUtils(); private OkHttpUtils(){}; public static OkHttpUtils getOkHttpUtils(){ return okHttpUtils; } private OkHttpClient client; public void initOkHttp(){ if (client==null){ client=new OkHttpClient.Builder().addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)).build(); } } public void doGet(String url, Callback callback){ initOkHttp(); Request request=new Request.Builder().addHeader("As-age","").url(url).build(); Call call=client.newCall(request); call.enqueue(callback); } }
package com.example.yuekaomoni.utils; import android.os.Handler; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; public abstract class Okonballck implements Callback { private Handler handler=OkHttpUtils.getOkHttpUtils().getHandler(); public abstract void onfiled(Call call, IOException e); public abstract void onsuccess(String result); @Override public void onFailure(final Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onfiled(call, e); } }); } @Override public void onResponse(Call call, Response response) throws IOException { final String result= response.body().string(); handler.post(new Runnable() { @Override public void run() { onsuccess(result); } }); } }