首页 > 解决方案 > 如何在没有 SSL 密钥的情况下从 Android 获取 Https 响应代码

问题描述

我需要使用我的 android 应用程序通过 Https 协议与网站通信。

当我使用 Chrome 或 Firefox 等任何浏览器时,我完全没有问题,一切都按预期工作。

但是当我想使用这段代码在我的应用程序中做同样的事情时:

try {
   URL url = new URL("https://justExample.de" + result);

   HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
   connection.setRequestMethod("GET");
   connection.connect();
   code = connection.getResponseCode(); 
} catch (IOException e) {
   e.printStackTrace();
}

并在清单中:

我有一个javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

为了使其工作,我需要添加crtand key(应该从网站开发人员处获得)作为原始数据,并且在清单中添加应用程序中的以下行: android:networkSecurityConfig="@xml/network_security_config"

并创建一个名为 xml 的文件network_security_config,其中包含

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="@raw/crt"/>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>
</network-security-config>

现在我的问题是如何在没有这个 crt\key 的情况下获得 content\ResponseCode ?就像chrome和其他浏览器一样。

第二个问题,web 开发者应该从他的身边做什么来让我在没有 key\cret 的情况下获得内容

标签: javaandroidsslhttps

解决方案


推荐阅读