okhttp ConnectionPool使用例子

举报
风吹稻花香 发表于 2021/06/04 23:41:41 2021/06/04
【摘要】 public OkHttpClient closeableOKHTTP() { log.info("Making OkHttpClient"); ConnectionPool pool = new ConnectionPool(5, 10, TimeUnit.MINUTES); OkHttpClient client = new OkHttpClient....



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

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/66472689

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。