网络请求框架OkGo

/ Android / 没有评论 / 2910浏览


OkGo是封装了 OkHttp 的网络请求框架,比 Retrofit 更简单易用,支持 RxJava,RxJava2,支持自定义缓存,支持批量断点下载管理和批量上传管理功能(来自官方简介),这是OkGo的wiki。


首先添加依赖 compile 'com.lzy.net:okgo:3.0.4',新建MyApplication类继承Application,并且在清单文件中注册,在MyApplication的onCreate()方法中完成OkGo的初始化,其实也是对OkHttp的初始化。



OkHttpClient.Builder builder = new OkHttpClient.Builder();
//配置log打印
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("OkGo");
//log打印级别,决定了log显示的详细程度
loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
//log颜色级别,决定了log在控制台显示的颜色
loggingInterceptor.setColorLevel(Level.INFO);
builder.addInterceptor(loggingInterceptor);

//配置cookie 配置到sp中
builder.cookieJar(new CookieJarImpl(new SPCookieStore(this)));
OkGo.getInstance().init(this).setOkHttpClient(builder.build())
.setCacheMode(CacheMode.REQUEST_FAILED_READ_CACHE)
.setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)
.setRetryCount(3);


进行GET网络请求



OkGo.<String>get(hostname).params("action", action).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
//打印出请求成功的结果
Log.e(TAG, "onSuccess: " + response.body().toString());
}
});