编写etwork_security_config.xml完整代码
时间: 2023-08-01 21:09:09 浏览: 106
以下是一个完整的 `network_security_config.xml` 文件的示例:
```xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 基本配置 -->
<base-config cleartextTrafficPermitted="false">
<!-- 可信证书列表 -->
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
</base-config>
<!-- 针对特定域名的配置 -->
<domain-config cleartextTrafficPermitted="false">
<!-- 域名 -->
<domain includeSubdomains="true">example.com</domain>
<!-- 可信证书列表 -->
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
<!-- 公钥固定 -->
<pin-set>
<pin digest="SHA-256">abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890</pin>
</pin-set>
</domain-config>
<!-- 针对另一个特定域名的配置 -->
<domain-config cleartextTrafficPermitted="false">
<!-- 域名 -->
<domain includeSubdomains="false">example.net</domain>
<!-- 可信证书列表 -->
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
<!-- 公钥固定 -->
<pin-set>
<pin digest="SHA-256">1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef</pin>
</pin-set>
</domain-config>
</network-security-config>
```
在这个示例中,我们定义了三个部分:
- 基本配置,禁止明文流量,并且信任的证书存储在 `@raw/my_ca` 文件中。
- 针对 `example.com` 域名的配置,同样禁止明文流量,在信任的证书列表中添加了 `@raw/my_ca`。
- 针对 `example.net` 域名的配置,同样禁止明文流量,在信任的证书列表中添加了 `@raw/my_ca`,并且指定了一个不同的公钥固定。
需要注意的是,在使用网络安全配置时,需要在 AndroidManifest.xml 文件中声明使用它,例如:
```xml
<application
...
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
```
阅读全文