
OkhttpClIEnt clIEnt;clIEnt = new OkhttpClIEnt.Builder() .connectTimeout(5,TimeUnit.SECONDS) .writeTimeout(5,TimeUnit.SECONDS) .readTimeout(5,TimeUnit.SECONDS) .build();Request request22 = new Request.Builder() .url("http://www.goo.com/") .build();Utils.myLog("-begin-");Response response = null;try { response = clIEnt.newCall(request22).execute(); if (response.isSuccessful()) { Utils.myLog("-donw-"); }} catch (Exception e) { e.printstacktrace(); Utils.myLog("-error-" + e.toString());} 这是我的代码,我将超时设置为5秒,但在“开始”之后仍然需要20秒才能收到“error unkNownhostexception”?为什么我的代码没用?我看过OKhttp的源代码,默认超时是10秒(如果我是对的),我很困惑.
任何人都可以帮忙,我真的很感激.
解决方法@H_301_16@ 目前,Okhttp无法中断耗时的DNS请求(参见 https://github.com/square/okhttp/issues/95),但您仍然可以执行以下 *** 作:OkhttpClIEnt clIEnt = new OkhttpClIEnt.Builder() .addInterceptor(interceptor) .readTimeout(15,TimeUnit.SECONDS) .writeTimeout(15,TimeUnit.SECONDS) .connectTimeout(15,TimeUnit.SECONDS) .dns(hostname -> Single.fromCallable( () -> Arrays.asList(InetAddress.getAllByname(hostname)) ).timeout(15,TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.computation()) .onErrorReturnItem(new ArrayList<>()) .blockingGet()) .build();总结
以上是内存溢出为你收集整理的android – Okhttp3设置超时是没用的全部内容,希望文章能够帮你解决android – Okhttp3设置超时是没用的所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)