Android okhttp3在调用.intercept()时引发java.net.ConnectException
这里是我正在使用的代码Android okhttp3在调用.intercept()时引发java.net.ConnectException,android,retrofit,retrofit2,okhttp,Android,Retrofit,Retrofit2,Okhttp,这里是我正在使用的代码 class VerificationInterceptor(private val helper: RequestHelper) : Interceptor { override fun intercept(chain: Interceptor.Chain): Response = chain.proceed(chain.request()).apply { if (code == 200
class VerificationInterceptor(private val helper: RequestHelper) : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response =
chain.proceed(chain.request()).apply {
if (code == 200
&& !chain.request().url.toString().contains(BuildConfig.root)
&& !chain.request().url.toString().contains(LOCAL_HOST_BASE)
) {
if (!helper.getResponseCryptoVerification(
headers,
peekBody(Long.MAX_VALUE).string()
)
) {
throw IOException("Error while generating Hmac for Response JSON")
}
}
}
}
这里的这一行chain.procedue(chain.request()).apply{
正在使用此堆栈跟踪崩溃
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect()(PlainSocketImpl.java:-2)
at java.net.AbstractPlainSocketImpl.doConnect()(AbstractPlainSocketImpl.java:334)
at java.net.AbstractPlainSocketImpl.connectToAddress()(AbstractPlainSocketImpl.java:196)
at java.net.AbstractPlainSocketImpl.connect()(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect()(SocksSocketImpl.java:356)
at java.net.Socket.connect()(Socket.java:605)
at okhttp3.internal.platform.AndroidPlatform.connectSocket()(AndroidPlatform.kt:58)
at okhttp3.internal.connection.RealConnection.connectSocket()(RealConnection.kt:268)
at okhttp3.internal.connection.RealConnection.connect()(RealConnection.kt:176)
at okhttp3.internal.connection.ExchangeFinder.findConnection()(ExchangeFinder.kt:236)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection()(ExchangeFinder.kt:109)
at okhttp3.internal.connection.ExchangeFinder.find()(ExchangeFinder.kt:77)
at okhttp3.internal.connection.Transmitter.newExchange$okhttp()(Transmitter.kt:162)
at okhttp3.internal.connection.ConnectInterceptor.intercept()(ConnectInterceptor.kt:35)
at okhttp3.internal.http.RealInterceptorChain.proceed()(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed()(RealInterceptorChain.kt:87)
at okhttp3.internal.cache.CacheInterceptor.intercept()(CacheInterceptor.kt:82)
at okhttp3.internal.http.RealInterceptorChain.proceed()(RealInterceptorChain.kt:112)
at okhttp3.internal.http.RealInterceptorChain.proceed()(RealInterceptorChain.kt:87)
at okhttp3.internal.http.BridgeInterceptor.intercept()(BridgeInterceptor.kt:84)
问题是导致崩溃的原因是什么?如何捕获它并继续执行请求链?失败可能与您的拦截器无关。崩溃启动链。继续(链。请求()),日志指向继续(),然后指向套接字连接()顺序有点让我觉得这是直接相关的。如果不继续,你有什么其他想法会导致ConnectException吗call@Rainmaker有没有可能你已经解决了?我有一个自定义的完全相同的跟踪interceptor@AndrewG不,不幸的是,甚至提交错误进行改造,okhttp客户端也没有帮助。我只是打包了它在try-catch和in-catch中创建一个错误主体,以正常失败。失败可能与拦截器无关。崩溃启动chain.procedue(chain.request()),日志指向procedue(),然后指向socket connect()顺序有点让我觉得这是直接相关的。如果不继续,你有什么其他想法会导致ConnectException吗call@Rainmaker有没有可能你已经解决了?我有一个自定义的完全相同的跟踪interceptor@AndrewG不,不幸的是,甚至提交错误进行改造,okhttp客户端也没有帮助。我只是打包了它在try-catch和in-catch中创建一个错误体,以正常地失败。