android - 使用 OkHttp3 在代理上拒绝 Android 连接
问题描述
当我在 Android Studio 中使用代理配置并向服务器发送请求时,出现连接被拒绝错误。
有人对此有所了解吗?
这是我的客户端生成器:
SSLContext sslContext = SSLContext.getInstance("SSL");
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyStorePass.toCharArray());
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom());
client = new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory())
.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
}).connectTimeout(timeout, TimeUnit.MILLISECONDS)
.readTimeout(timeout, TimeUnit.MILLISECONDS)
.writeTimeout(timeout, TimeUnit.MILLISECONDS).build();
这是错误日志:
W/System.err: java.net.ConnectException: Failed to connect to /10.51.33.41:443
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:222)
W/System.err: at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:146)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:186)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
at okhttp3.RealCall.execute(RealCall.java:63)
W/System.err: at br.com.oi.http.HttpClient.doRequest(HttpClient.java:192)
at br.com.oi.http.HttpClient.doRequest(HttpClient.java:86)
at br.com.oi.dadosfacil.service.oi.login.LoginService.run(LoginService.java:64)
at br.com.oi.http.BaseService.onHandleIntent(BaseService.java:38)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:76)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
W/System.err: at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.net.ConnectException: failed to connect to /10.51.33.41 (port 443) from /192.163.222.2 (port 49536) after 120000ms: isConnected failed: ECONNREFUSED (Connection refused)
W/System.err: at libcore.io.IoBridge.isConnected(IoBridge.java:273)
at libcore.io.IoBridge.connectErrno(IoBridge.java:188)
at libcore.io.IoBridge.connect(IoBridge.java:130)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356)
W/System.err: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:357)
W/System.err: at java.net.Socket.connect(Socket.java:616)
at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:63)
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:220)
... 25 more
W/System.err: Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:262)
W/System.err: ... 35 more
我正在使用 minSdkVersion 19 和 targetSdkVersion 26
解决方案
推荐阅读
- linux - 如何将 azure 管道 dotnet 输入传递给 linux dotnet 二进制文件
- sql - 如何将相同 num 的 2 个值获取到 2 个单独的列
- swift - 如何将几个 CGImage 合并成一个更大的 CGImage?
- javascript - 如何拒绝递归承诺并重定向到登录页面?
- javascript - 禁用输入键以单击按钮
- iso - 如何为systemrescuecd制作自动启动菜单
- python - 将 JSON 导入 DynamoDB
- android - NativeScript Android SDK 安装错误,“警告:无法创建设置 java.lang.IllegalArgumentException”
- firebase - 如何修复错误:您的应用程序 ID 可能不正确。如果错误仍然存在,请联系 support@algolia.com
- javascript - 如何获取网站中html元素的css、javascript