无法解析主机或连接失败

问题描述 投票:0回答:1

在我的 Android 应用程序中,我定期收到两种类型的错误,表示存在网络连接问题。我正在使用retrofit2 2.9.0。应用程序获得了所有需要的权限。使用数据网络。

我的应用程序定期(每 15 分钟)与家庭服务器和 api.openweathermap.org 同步。两者都有问题,所以不是我服务器的问题。

我将改造(OkHttpClient)超时增加到 30 秒,但运气不佳。

问题的根源可能是网络连接不佳,但我观察到,当问题发生时,连接足够好,我可以在浏览器中加载网站。

failed to connect to xxxxxx.com/xxx.xxx.xxx.xxx (port 443) from /192.0.0.4 (port 54944) after 30000ms
libcore.io.IoBridge.connectErrno(IoBridge.java:190)
libcore.io.IoBridge.connect(IoBridge.java:134)
java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
java.net.Socket.connect(Socket.java:631)
okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:923)
Unable to resolve host "xxxxxx.com": No address associated with hostname
java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
java.net.InetAddress.getAllByName(InetAddress.java:1152)
okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:923)
libcore.io.Linux.android_getaddrinfo(Native Method)
libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:73)
libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:202)
libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:73)
java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
java.net.InetAddress.getAllByName(InetAddress.java:1152)
okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:923)
java android networking connection retrofit2
1个回答
0
投票

你添加了吗

<uses-permission android:name="android.permission.INTERNET"/>

在你的清单中?

© www.soinside.com 2019 - 2024. All rights reserved.