我正在使用一个http://something
用于登录过程的 API。但在 Android 10 中无法使用 API。对于该版本的其余部分,API 工作正常。
首先,我得到了套接字超时异常。然后我尝试了以下解决方案。
1)添加以下属性<application>
在清单中。
android:usesCleartextTraffic="true"
结果:仍然得到套接字超时异常.
2)然后我添加了networkSecurityConfig
:
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">project.dev.company:6001/</domain>
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</domain-config>
</network-security-config>
结果 :UnknownServiceException:网络安全策略不允许与 project.dev.company:6001/ 进行 CLEARTEXT 通信。
3)还尝试允许CLEARTEXT<base-config>
。还在得到套接字超时异常.
如何允许我的应用从 Android 10 访问 HTTP 连接?我正在使用 Retrofit2 进行网络通话。
在您的 xml 文件中使用此代码
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">project.dev.company</domain>
</domain-config>
</network-security-config>
并在清单中使用此代码:
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_configuration"
域中不需要任何“/”和端口,只需像我一样使用
Edited:
您可以使用 api 主机的 IP,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">192.168.1.1</domain>
</domain-config>
</network-security-config>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)