NetworkSecurityConfig放开http请求

针对Android P系统默认阻止非加密http流量的问题,可以通过创建network_security_config.xml文件并配置允许http请求来解决。在xml文件中设置cleartextTrafficPermitted为true,并在AndroidManifest.xml中引用此配置。如果只需特定服务器允许http,可以添加domain-config并指定域名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
由于Android P系统的设备 ,限制了非加密的文明流量的http(https没事)网络请求,导致该应用无法进行http协议的网络请求。

解决方案

在res目录下创建xml目录,然后随便创建一个.xml文件

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

在AndroidManifest.xml文件application节点添加
android:networkSecurityConfig="@xml/network_security_config"

如果我们要只放开特定服务器的http,添加如下代码

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">XXX.XXX.XXX.XXX</domain>
    </domain-config>
</network-security-config>

这个提示意味着你的应用程序没有指定网络安全配置,因此它将使用设备的默认配置。这可能会导致一些安全问题,因为默认配置可能不是最安全的。为了避免这种情况,你应该考虑在应用程序中指定网络安全配置,以确保使用最佳的安全协议和加密算法。你可以在应用程序的清单文件中添加一个`network_security_config`元素来指定你的网络安全配置。例如: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application android:networkSecurityConfig="@xml/network_security_config" ...> ... </application> </manifest> ``` 然后,在res/xml文件夹中创建一个名为`network_security_config.xml`的文件,并在其中定义你的网络安全配置。例如: ``` <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">example.com</domain> <pin-set> <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</pin> </pin-set> </domain-config> </network-security-config> ``` 在这个例子中,我们定义了一个基本的网络安全配置,并且禁止了明文传输。我们还定义了一个特定的域名配置,以便在访问`example.com`时强制使用SSL,并验证服务器的公钥指纹。 请注意,具体的网络安全配置取决于你的应用程序的需求和使用情况。你应该根据需要进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值