java - 如何在没有 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.
为了使其工作,我需要添加crt
and 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 的情况下获得内容
解决方案
推荐阅读
- r - 在闪亮的 sendSweetAlert 消息中插入按钮
- excel - 如何使用 VBScript 刷新多个 Excel 中不同路径的数据?
- amazon-web-services - 如何在 cdk 部署期间跳过 IAM 更改确认?
- c# - 以编程方式启动 Visual Studio Code
- swift - 如何在 SwiftUI 中处理插值 LocalizedStringKey
- r - azuremlsdk R:如何将数据集转换为 R 数据框?
- sql - 使用 Postgres 如何按范围类型分组
- c - 变量从 atoi 赋值中丢失它的值
- sql - 使用 CASE(AND) 与 CASE 组合成一个单一的分组
- ios - xCode 无法识别设备和包