Android 在运行时将network\u security\u config.xml的域名设置为localhost
自Android 9以来,Android默认只允许通过HTTPS进行网络连接。但是,我所做的唯一请求是通过本地主机完成的(例如Android 在运行时将network\u security\u config.xml的域名设置为localhost,android,http,https,android-manifest,android-network-security-config,Android,Http,Https,Android Manifest,Android Network Security Config,自Android 9以来,Android默认只允许通过HTTPS进行网络连接。但是,我所做的唯一请求是通过本地主机完成的(例如http://10.41.199.226:port/FooBar),由 (C#)HttpListener侦听地址:端口组合 由于此请求是通过HTTP发出的,所以默认情况下Android不允许此请求。下面是Android关于network\u security\u config文件的介绍,我可以通过添加以下network\u security\u config.xml文件来
http://10.41.199.226:port/FooBar
),由
(C#)HttpListener
侦听地址:端口组合
由于此请求是通过HTTP发出的,所以默认情况下Android不允许此请求。下面是Android关于network\u security\u config
文件的介绍,我可以通过添加以下network\u security\u config.xml
文件来允许HTTP连接
使用Android:networkSecurityConfig=“@xml/network\u security\u config”从Android清单调用
这允许完成HTTP请求,但由于这设置了基本配置,因此允许跨整个应用程序发出HTTP请求。这不是一个好主意,因为我可能希望在将来添加传出请求,我希望通过HTTPS发送请求,并希望这个安全网能够实现这一点。这是不可能的
在同一文档中,他们进一步介绍了域配置
,该配置允许您根据域设置cleartexttrafficallowed
,我尝试了以下域设置
127.0.0.1
10.0.0.1
本地服务器
在没有结果的情况下,由于未使用https,请求仍被阻止
我查找了设备的本地地址,并将其添加到域列表中
10.41.199.226
这是可行的,只有在通过本地主机请求时才允许HTTP,而任何传出请求都需要HTTPS
唯一的问题是,我无法知道在应用程序启动之前运行该应用程序的设备的本地ip
所以我的问题是,有没有办法做到这两个方面:localhost
,但没有成功)10.0.0.0
地址时设置includeSubdomains=“true”
可以帮我做到这一点。但它没有做到)network\u security\u config.xml
文件,以便在启动应用程序时将其中一个域条目的域名动态更新为当前本地ip李>
该应用程序使用Unity 2019.1.8开发,使用.net 4.x IL2CPP脚本运行时实现此功能的简单方法是将此属性用于您的AndroidManifest.xml,其中允许所有请求使用所有http:
android:usesCleartextTraffic="true"
但是,如果您希望为不同的链接提供更多配置,例如,允许某些域使用http,但不允许其他域使用http,则必须提供networkSecurityConfig
文件
要在Android 9 Pie中执行此操作,您必须在清单应用程序标记中设置networkSecurityConfig
,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
.尝试1.0.2.2而不是本地主机。它对我有用。
10.0.2.2
试试这个
//in AndroidManifest.xml
<application
android:networkSecurityConfig="@xml/network_security_config">
.
</application>
<?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>
//在AndroidManifest.xml中
.
非常感谢,我遇到了这个问题。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain>
</domain-config>
</network-security-config>
//in AndroidManifest.xml
<application
android:networkSecurityConfig="@xml/network_security_config">
.
</application>
<?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>