noo*_*Bot 3 https android http socket-timeout-exception retrofit2
我正在使用http://somethingAPI 进行登录过程。但无法在 Android 10 中使用 API。对于该版本的其余部分,API 运行良好。首先,我收到了SocketTimeoutException。然后我尝试了以下解决方案。
1)<application>在 Manifest 中添加了以下属性。
android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)
结果:仍然收到SocketTimeoutException。
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>
Run Code Online (Sandbox Code Playgroud)
结果:UnknownServiceException:网络安全策略不允许与 project.dev.company:6001/ 的 CLEARTEXT 通信。
3) 还尝试在<base-config>. 仍然收到SocketTimeoutException。
如何允许我的应用从 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>
Run Code Online (Sandbox Code Playgroud)
并在清单中使用此代码:
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_configuration"
Run Code Online (Sandbox Code Playgroud)
域中不需要任何“/”和端口,就像我一样使用
编辑:
您可以使用 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |