okhttp ConnectionPool使用例子

来源:互联网 发布:刷阅读量软件 编辑:程序博客网 时间:2024/06/05 21:14



public OkHttpClient closeableOKHTTP() {    log.info("Making OkHttpClient");    ConnectionPool pool = new ConnectionPool(5, 10, TimeUnit.MINUTES);    OkHttpClient client = new OkHttpClient.Builder() //            .connectTimeout(3, TimeUnit.MINUTES) //            .followRedirects(true) //            .readTimeout(3, TimeUnit.MINUTES) //            .retryOnConnectionFailure(false) //            .writeTimeout(3, TimeUnit.MINUTES). //            connectionPool(pool) //            .build();    return client;}

public void destroy() {    if (daemonExecutor != null && daemonExecutor instanceof ThreadPoolExecutor) {        ThreadPoolExecutor tpe = (ThreadPoolExecutor) daemonExecutor;        tpe.shutdown();    }    if (okHttpClient != null) {        ConnectionPool connectionPool = okHttpClient.connectionPool();        connectionPool.evictAll();        log.info("OKHTTP connections iddle: {}, all: {}", connectionPool.idleConnectionCount(), connectionPool.connectionCount());        ExecutorService executorService = okHttpClient.dispatcher().executorService();        executorService.shutdown();        try {            executorService.awaitTermination(3, TimeUnit.MINUTES);            log.info("OKHTTP ExecutorService closed.");        } catch (InterruptedException e) {            log.warn("InterruptedException on destroy()", e);        }    }}public static final String API = "http://api.fixer.io/";

参考:https://github.com/CatPlanet/okhttpMemoryLeak/blob/2a17473e1a3e7dd3a7a96aebf3649fbefb8e5fc2/src/eu/kaguya/service/BasicService.java

0 0
原创粉丝点击