OkHttp设置超时时间
在使用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设置超时时间相关推荐
- httpclient 设置超时时间_面试官:技术选型,HttpClient还是OkHttp?
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 来源:juejin.im/post/6844904040644476941 推荐 ...
- RestTemplate 设置超时时间
项目访问量大,频繁调取其他系统接口经常出现项目后台假死现象,发现其他系统掉线重启一段时间必现.查看调用接口,同事直接引用了RestTemplate但是没有设置超时时间->_<-. 两种方式 ...
- HttpClient 如何设置超时时间
今天分享一个巨坑,就是 HttpClient.这玩意有多坑呢?就是每个版本都变,近日笔者深受其害. 先看一下代码,我要发送请求调用一个c++接口. public static String doPos ...
- 【Java 网络编程】服务器端 ServerSocket 配置 ( 端口复用 | 缓冲区设置 | 超时时间 | 性能权重 | 端口绑定 )
文章目录 I ServerSocket 端口号绑定参数 II ServerSocket 复用绑定端口设置 III ServerSocket 设置缓冲区大小 IV ServerSocket 设置超时时间 ...
- python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间的方法
我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊 ...
- php如何发起远程请求,PHP请求远程地址如何设置超时时间
PHP请求远程地址设置超时时间的方法:1.[file_get_contents]请求超时设置:2.fopen请求超时设置:3.curl请求超时设置. [相关学习推荐:php编程(视频)] PHP请求远 ...
- 同时设置超时时间_刚入职的小菜鸡,设错了RPC超时,搞了个线上事故
上面这张监控图,对于服务端的研发同学来说再熟悉不过了.在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题. 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结 ...
- python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间
我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做timeout,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊情况 ...
- 调用webservice 设置超时时间
前段时间自己写了个程序,调用webservice,今天早上一执行,速度是相当的慢,一开始以为是程序的问题,后来跟踪一看,原来是调用webservice出现问题,放置webservice的服务器关掉了, ...
最新文章
- AngularJs在IE10,11中的一个坑。
- MNE-Python专辑 | MNE-Python详细安装与使用(更新)
- 设计模式之Composite
- C~K招亲_JAVA
- springmvc教程--RESTful支持详解
- 使用EMR-Kafka Connect进行数据迁移
- 服务器日志文件中包含堆栈跟踪,日志框架 Logback 官方手册(第三章:Configuration)...
- matlab guide实现多级界面
- SWT学生成绩管理系统
- Error:java: 无效的源发行版: 8
- 新增业务订单设计——产品形态随想
- Windows Mobile Pocket PC的文件系统
- CentOS中使用VeraCrypt(一):安装及创建整个加密硬盘
- ERP2021青岛理工信管期末考试重点
- 如何查看手机、电脑设备配置?快来了解下你的电脑和手机吧~ 解读系统配置-cmd的简单应用
- 122412_0529_WORD2013BLO1
- 基于ssm流浪猫狗|流浪狗宠物救助网站
- c++ 构造函数+初始化列表
- 北京2008福娃2图标
- 计算机丢失Uxteme,xp系统开机显示uxtheme.dll丢失的恢复教程