OkHttp单例封装类

作者: 没钱一定要骚 | 来源:发表于2017-12-20 15:05 被阅读0次

//导okhttp依赖compile 'com.squareup.okhttp3:okhttp:3.8.1'


public class MyOkHttp {

private static MyOkHttp myOkHttp = new MyOkHttp();

private OkHttpClient okHttpClient;

private Cache cache;

private long maxSize = 8 * 1024 * 1024;

private MyOkHttp() {

//Environment用来管理手机SDcard内存的

File file = new File(Environment.getExternalStorageDirectory() + "/H1706A");

cache = new Cache(file, maxSize);

//OKHTTPClient两种写法 第二种就是通过构造者模式也可以使用

okHttpClient = new OkHttpClient.Builder().cache(cache).build();

}

public static MyOkHttp getMyOkHttp() {

return myOkHttp;

}

//同步下get,Post

public String sendGet(String url) throws IOException {

Request request = new Request.Builder().url(url).build();

Response response = okHttpClient.newCall(request).execute();

return response.body().string();

}

//同步下Post

public String sendPost(String url, RequestBody body) throws IOException {

Request request = new Request.Builder().url(url).post(body).build();

Response response = okHttpClient.newCall(request).execute();

return response.body().string();

}

//异步的封装 GET和POST自己 预习一下缓存OkHttp如何使用缓存

public void sendAsyncGet(String url, Callback callback) {

Request request = new Request.Builder().url(url).build();

okHttpClient.newCall(request).enqueue(callback);

}

//异步的POST

public void sendAsyncPost(String url, RequestBody body, Callback callback) {

Request request = new Request.Builder().url(url).post(body).build();

okHttpClient.newCall(request).enqueue(callback);

}

//测试缓存

public String sendCacheGet(String url) throws IOException {

//要缓存数据  需要加上一个方法cacheControl

Request request = new Request.Builder().url(url).cacheControl(new CacheControl.Builder().maxStale(24 * 60 * 60, TimeUnit.SECONDS).build()).build();

Response response = okHttpClient.newCall(request).execute();

return response.body().string();

}

}

相关文章

  • OkHttp单例封装类

    //导okhttp依赖compile 'com.squareup.okhttp3:okhttp:3.8.1' pu...

  • 单例模式

    单例模式是封装的一种形式,依靠单例模式调用被封装的属性和方法,因为使用单例模式的类无法生成实例(只能引用单例模式所...

  • 1. Http请求模块,Volley+OkHttp。(获取数据,

    概述步骤 a. 添加Volley库,并封装Volley为单例模式。 b. 使用OkHttp实现 基于 com.an...

  • OkHttp的简单封装使用

    封装单例工具类,包含get和post请求 调用方式

  • Java中使用OkHttp进行Http通信

    提供一个OkHttp的工具类方法。 1. 引入依赖 2. 工具类代码 工具类需要创建一个单例的OkHttp的客户端...

  • okhttp-utils用法总结

    对okhttp的封装类,okhttp见:https://github.com/square/okhttp.目前对应...

  • 单例

    单例个人觉得,单例用的比较多的是对工具类的封装,使用单例,可以很方面的进行模块间传值或者是工具类方法的使用。 一般...

  • iOS单例模式

    单例模式 解决“应用中只有一个单例”的一类问题。 Objecttive-C实现原理 单例模式一般会封装一个静态属性...

  • Swoole单例模式及依赖注入进行Redis底层类库封装

    redis安装及php-redis扩展安装 初步使用 封装基类 – 单例模式 优化封装 – 依赖注入 从配置加载 ...

  • python09-单例设计模式

    单例设计模式 如果每个对象封装了不同的数据,则不适用单例模式 如果一个类封装的数据一样,调用方法得到的结果一样,且...

网友评论

    本文标题:OkHttp单例封装类

    本文链接:https://www.haomeiwen.com/subject/xxpgwxtx.html