retrofit - IllegalArgumentException 端口超出范围:改装拦截器中的 -1
问题描述
我正在调查我们的应用程序中开始出现的问题,该问题在设备上配置了 pac 文件代理。我注意到的一件事是,在这开始发生之前,我们将改造版本从 2.6.0 增加到使用 OkHttp3 的 2.9.0。我了解一般根本原因,那就是 okhttp 正试图遵守系统设置,并且正试图连接到设备指定的代理。但是我们的代理是使用 pac 文件 url 配置的,而不是带有端口的静态主机。
问题的堆栈跟踪:
Fatal Exception: java.lang.IllegalArgumentException: port out of range:-1
at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:144)
at java.net.InetSocketAddress.createUnresolved(InetSocketAddress.java:269)
at sun.net.spi.DefaultProxySelector$1.run(DefaultProxySelector.java:315)
at sun.net.spi.DefaultProxySelector$1.run(DefaultProxySelector.java:219)
at java.security.AccessController.doPrivileged(AccessController.java:43)
at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:218)
at okhttp3.internal.connection.RouteSelector$resetNextProxy$1.invoke(RouteSelector.java:106)
at okhttp3.internal.connection.RouteSelector.resetNextProxy(RouteSelector.java:113)
at okhttp3.internal.connection.RouteSelector.<init>(RouteSelector.java:53)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:209)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:76)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.java:245)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:96)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
我正在寻找可能导致此问题的一些提示。这可能是库中的一个错误,因为一切似乎都在导致升级,但我愿意接受任何建议。它似乎与任何 Android 版本、安全补丁、设备型号或任何类似的东西都无关。
解决方案
推荐阅读
- amazon-web-services - 如何防止 AWS 联合用户在 AWS 控制台上看到其他联合用户资源
- .net - 为什么 Win32_BIOS 类中有几个描述 BIOS 版本的版本字符串?
- wpf - 通过 itemsource 模型的属性对 ItemsControl 进行分组
- django - Django navbar 内容链接消失
- sql - 提高 3 亿行表的查询性能
- javascript - Firebase 保存数据
- angular - Angular没有获取所有模块
- mysql - Kafka JDBC Source Connector 没有使用 sql 查询从 mysql 读取数据?
- jquery - 如何仅在按下 Enter 后显示自动完成建议?
- postgresql - System.ArgumentException:'不支持关键字:'主机'。'