从现在的Android 9Pie开始,没有加密的请求将永远不会起作用.默认情况下,系统会期望您默认使用TLS.You can read this feature here因此,如果您只通过HTTPS发出请求,您是安全的.但通过不同网站发出请求的应用程序怎么办,例如,类似浏览器的应用程序.

如何在Android 9 Pie中启用对所有类型HTTP和HTTPS连接的请求?

推荐答案

实现这一点的简单方法是在AndroidManifest.xml中使用此属性,允许所有请求都使用http:

<application android:usesCleartextTraffic="true">
</application>

但是,如果你想为不同的链接提供more configurations个,比如,允许某些域使用http个,但其他域不使用http个,那么你必须提供res/xml/networkSecurityConfig.xml文件.

要在Android 9 Pie中执行此操作,您必须在Manifestapplication标记中设置networkSecurityConfig,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">




    </application>
</manifest>

然后在您的xml文件夹中,您现在必须创建一个名为network_security_config的文件,就像您在 list 中命名它的方式一样,并且从那里开始,您的文件的内容应该是这样的,以便在不加密的情况下启用所有请求:

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

从那里开始你就可以走了.现在,您的应用程序将请求所有类型的连接.有关此主题的更多信息,请访问read here.

Java相关问答推荐

在URL类图中表示Java swing类

伪类focus-in不适用于PFA中的选项卡

我可以在regex中的字符类中放置断言吗?

CriteriaQuery with max

JPackaged应用程序启动MSI调试,然后启动System. exit()

Listview—在Android Java中正确链接项目时出错

即使我正在使用并发方法,使用Javascript的应用程序也会继续冻结'

对字符串长度进行排序,但颠倒了顺序(最长字符串在前)

GetChildren().emoveAll()不会删除 node

S,要对Java复制构造函数深度克隆所有属性进行单元测试,最可靠的方法是什么?

支持MySQL 5.6的最新Hibernate版本

在Java 15应用程序中运行Java脚本和Python代码

我如何为我的Java抵押贷款代码执行加薪操作(&Q)

A.ForEach与For(类型a:集合)

如何调整JButton的大小以适应图标?

为什么创建Java动态代理需要接口参数

如何在MPAndroidChart中的条形图上正确添加标签

Spring Mapstruct如何获取Lazy初始化实体字段的信息?

这是JavaFX SceneBuilder的错误吗?

双对象供应商