错误可能是由于游戏应用程序不信任 HTTP Toolkit 的根证书引起的。为了解决这个问题,可以在游戏应用程序中添加以下代码,以便信任 HTTP Toolkit 的根证书。
public static void trustCustomCA(Context context) {
try {
InputStream myKeyStore = context.getResources().openRawResource(R.raw.httptoolkit);
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(myKeyStore, "".toCharArray());
myKeyStore.close();
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustManagerFactory.getTrustManagers(), null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
在代码中,我们将 HTTPS 连接的默认 SSL 套接字工厂设置为安装我们提供的根证书的 SSL 上下文的工厂。需要确保你已将 httptoolkit.bks
文件放在 res/raw
目录中,代码中的 R.raw.httptoolkit
将根据测试中的资源 ID 进行更改。