在使用okHttp的时候我们经常会使用超时设置:如下:

okHttpClient = new OkHttpClient.Builder().connectTimeout(5, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).readTimeout(5, TimeUnit.SECONDS).dns(new xDns(5)).build();

但是在某些情况下,eg:域名解析不了。我们设置的这些超时值不管用,往往需要几十秒之后get/post之后才返回错误。所以此时我们就需要设置一下dns解析超时,关于okhttp的dns解析超时网上很多方法,这里我使用最简答的:okhttp.dns接口:

public class xDns implements Dns {private long timeout  = 5;public xDns(long timeout){this.timeout = timeout;}@Overridepublic List<InetAddress> lookup(String hostname) throws UnknownHostException {if(hostname == null){throw new UnknownHostException("host name is null");}else{try {FutureTask<List<InetAddress>> task = new FutureTask<>(new Callable<List<InetAddress>>() {@Overridepublic List<InetAddress> call() throws Exception {return Arrays.asList(InetAddress.getAllByName(hostname));}});new Thread(task).start();return task.get(timeout, TimeUnit.SECONDS);} catch (Exception var4) {UnknownHostException unknownHostException =new UnknownHostException("Unable to resolve host " + hostname);unknownHostException.initCause(var4);throw unknownHostException;}}}
}

这样就可以很好的规避dns解析超时问题了。

博客参考:https://blog.csdn.net/quwei3930921/article/details/85336552

OkHttp设置超时时间相关推荐

  1. httpclient 设置超时时间_面试官:技术选型,HttpClient还是OkHttp?

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 来源:juejin.im/post/6844904040644476941 推荐 ...

  2. RestTemplate 设置超时时间

    项目访问量大,频繁调取其他系统接口经常出现项目后台假死现象,发现其他系统掉线重启一段时间必现.查看调用接口,同事直接引用了RestTemplate但是没有设置超时时间->_<-. 两种方式 ...

  3. HttpClient 如何设置超时时间

    今天分享一个巨坑,就是 HttpClient.这玩意有多坑呢?就是每个版本都变,近日笔者深受其害. 先看一下代码,我要发送请求调用一个c++接口. public static String doPos ...

  4. 【Java 网络编程】服务器端 ServerSocket 配置 ( 端口复用 | 缓冲区设置 | 超时时间 | 性能权重 | 端口绑定 )

    文章目录 I ServerSocket 端口号绑定参数 II ServerSocket 复用绑定端口设置 III ServerSocket 设置缓冲区大小 IV ServerSocket 设置超时时间 ...

  5. python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间的方法

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊 ...

  6. php如何发起远程请求,PHP请求远程地址如何设置超时时间

    PHP请求远程地址设置超时时间的方法:1.[file_get_contents]请求超时设置:2.fopen请求超时设置:3.curl请求超时设置. [相关学习推荐:php编程(视频)] PHP请求远 ...

  7. 同时设置超时时间_刚入职的小菜鸡,设错了RPC超时,搞了个线上事故

    上面这张监控图,对于服务端的研发同学来说再熟悉不过了.在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题. 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结 ...

  8. python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做timeout,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊情况 ...

  9. 调用webservice 设置超时时间

    前段时间自己写了个程序,调用webservice,今天早上一执行,速度是相当的慢,一开始以为是程序的问题,后来跟踪一看,原来是调用webservice出现问题,放置webservice的服务器关掉了, ...

最新文章

  1. AngularJs在IE10,11中的一个坑。
  2. MNE-Python专辑 | MNE-Python详细安装与使用(更新)
  3. 设计模式之Composite
  4. C~K招亲_JAVA
  5. springmvc教程--RESTful支持详解
  6. 使用EMR-Kafka Connect进行数据迁移
  7. 服务器日志文件中包含堆栈跟踪,日志框架 Logback 官方手册(第三章:Configuration)...
  8. matlab guide实现多级界面
  9. SWT学生成绩管理系统
  10. Error:java: 无效的源发行版: 8
  11. 新增业务订单设计——产品形态随想
  12. Windows Mobile Pocket PC的文件系统
  13. CentOS中使用VeraCrypt(一):安装及创建整个加密硬盘
  14. ERP2021青岛理工信管期末考试重点
  15. 如何查看手机、电脑设备配置?快来了解下你的电脑和手机吧~ 解读系统配置-cmd的简单应用
  16. 122412_0529_WORD2013BLO1
  17. 基于ssm流浪猫狗|流浪狗宠物救助网站
  18. c++ 构造函数+初始化列表
  19. 北京2008福娃2图标
  20. 计算机丢失Uxteme,xp系统开机显示uxtheme.dll丢失的恢复教程

热门文章

  1. 想要摆脱CURD,写作是一个出路?(文末送5本书籍)
  2. 微博数据分析及高效获取
  3. 大数据岗位职责与学习,未来的职业岗位,主要有哪些
  4. “他,程序猿,35岁,被劝退”:不要只懂代码,会说话,胜过10倍默默努力
  5. 用python制作个性化签名
  6. java Excel转Pdf
  7. DNS轮询技术的应用
  8. Apple iWork(Pages、Numbers、Keynote)11.0 发布
  9. 拼多多开店靠谱吗?新手怎么开店?
  10. 从Systrace看抖音Android Camera Bufferqueue渲染