只包含Get和Post请求
Okhttp3依赖包
//前两个是Okhttp3依赖
compile 'com.squareup.okio:okio:1.5.0' //不写不加载数据
compile 'com.squareup.okhttp3:okhttp:3.2.0'
//拦截器依赖
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
以下为代码
二次封装采用的是单例模式
public class OkHttp3Utils {
/**
* 懒汉 安全 加同步
* 私有的静态成员变量 只声明不创建
* 私有的构造方法
* 提供返回实例的静态方法
*/
private static OkHttpClient okHttpClient = null;
public OkHttp3Utils() {
}
//通过单例模式获取实例
public static OkHttpClient getInstance() {
if (okHttpClient == null) {
//同步代码
synchronized (OkHttp3Utils.class) {
if (okHttpClient == null) {
//缓存路径
File sdcache = new File(Environment.getExternalStorageDirectory(), "okhttpCache");
int cacheSize = 10 * 1024 * 1024;
//okhttp拦截器
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.i("msg", message.toString());
}
});
//拦截器日志分类
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClient = new OkHttpClient.Builder().connectTimeout(15, TimeUnit.MINUTES)
.addInterceptor(httpLoggingInterceptor)
.writeTimeout(20, TimeUnit.SECONDS).rea