gpt4 book ai didi

android - 4.1 及以上设备的 SSL 错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:48 24 4
gpt4 key购买 nike

当我试图调用我的网络服务时,我遇到了 4.1 及更高版本 android 设备的问题。我已将我的 .cer 文件转换为 bks 并使用以下代码:

  KeyStore trusted = KeyStore.getInstance("BKS");
InputStream in = c.getResources().openRawResource(R.raw.test);

trusted.load(in, "password".toCharArray());


TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509");
trustManagerFactory.init(trusted);

KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
kmf.init(trusted, "password".toCharArray());

SSLContext context = SSLContext.getInstance("TLS");
context.init(kmf.getKeyManagers(), tm, null);



URL request = new URL(URL);

urlConnection = (HttpsURLConnection) request.openConnection();


urlConnection.setHostnameVerifier(SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);

urlConnection.setSSLSocketFactory(context.getSocketFactory());

urlConnection.setDoInput(true);

urlConnection.setReadTimeout(200000);


urlConnection.connect();

InputStream ina = urlConnection.getInputStream();

BasicHttpEntity res = new BasicHttpEntity();

res.setContent(ina);

HttpResponse resp = new BasicHttpResponse(HttpVersion.HTTP_1_1,
urlConnection.getResponseCode(), "");
resp.setEntity(res);

HttpEntity responseEntity = resp.getEntity();

InputStream data = responseEntity.getContent();

此代码适用于 4.0 及以下设备,但对于 4.1 作为响应,我收到“403 禁止错误”。

不幸的是,我找不到哪里出错了,请提供任何帮助。

最佳答案

trusted 中有什么?如果不需要客户端身份验证,则不需要构建 KeyManagerFactory,只需将 null 作为第一个参数传递给 context.init()

关于android - 4.1 及以上设备的 SSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18631110/

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