gpt4 book ai didi

Android Parse 实现无法验证自定义服务器主机名

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:42:21 25 4
gpt4 key购买 nike

Android 上初始化 Parse 时,我能够在以下情况下成功连接到 Parse 服务器:
1) 我没有指定服务器 URL,或者
2) 我将服务器 URL 设置为解析服务器。

因为我们打算最终将我们的数据从 Parse 迁移到不同的主机,所以我们想连接到不同的服务器 URL。但是,当我尝试指定重定向(用作代理)到 Parse 服务器的不同服务器 URL ( https://api.ourhostname.com/1/ ) 时,应用程序无法完全连接到服务器。从 iOS 项目实现时,此服务器 URL 工作正常。但是,当在 Android 等效设备上实现时:

Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId(APP_ID)
.clientKey(CLIENT_KEY)
.server("https://api.ourhostname.com/1/")
.build()
);

我收到一个 i/o 故障:

05-24 21:46:55.319 7140-7140/com.ourapp W/System.err: com.parse.ParseRequest$ParseRequestException: i/o failure
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at com.parse.ParseRequest.newTemporaryException(ParseRequest.java:290)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at com.parse.ParseRequest$2.then(ParseRequest.java:145)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at com.parse.ParseRequest$2.then(ParseRequest.java:139)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at bolts.Task$15.run(Task.java:917)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: at java.lang.Thread.run(Thread.java:818)
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: Caused by: javax.net.ssl.SSLPeerUnverifiedException: Cannot verify hostname: api.ourhostname.com
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err: at android.net.SSLCertificateSocketFactory.verifyHostname(SSLCertificateSocketFactory.java:242)
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err: at android.net.SSLCertificateSocketFactory.createSocket(SSLCertificateSocketFactory.java:486)
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err: at com.android.okhttp.Connection.upgradeToTls(Connection.java:1226)
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err: at com.android.okhttp.Connection.connect(Connection.java:1183)
...

我可以从网络浏览器访问我们的自定义服务器 URL,该 URL 在浏览器中是可信且有效的,这意味着它不是自签名的。

有没有其他人在他们的 Android 项目中遇到过这个问题,以及关于如何成功让 Parse SDK 连接到自定义服务器 URL 的任何建议?

更新:我们能够通过以下方式解决此问题:
1) 添加this solution在安卓端。
2) 调整我们的自定义服务器如何提供其公钥(这对于使 Marshmallow 能够连接到服务器尤为重要)。

最佳答案

我们能够通过以下方式解决此问题:
1) 添加this solution在安卓端。
2) 调整我们的自定义服务器如何提供其公钥(这对于使 Marshmallow 能够连接到服务器尤为重要)。

关于Android Parse 实现无法验证自定义服务器主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com