Android 9:尽管有 cleartextTrafficPermitted="true",但不允许明文 HTTP 流量
Android 9: Cleartext HTTP traffic not permitted although having cleartextTrafficPermitted="true"
我有一个奇怪的问题。我的应用程序使用 http 连接到服务器。它在许多设备上都能正常工作。但是,在具有 Android 9 的小米设备中,它给了我这个错误:
Caused by java.io.IOException: Cleartext HTTP traffic to internet.vodafone.com.eg not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:142)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:469)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:549)
at com.google.firebase.perf.network.zzd.getResponseCode(zzd.java:81)
at com.google.firebase.perf.network.zzb.getResponseCode(zzb.java:14)
at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:96)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
在 AndroidManifest.xml 我有这个:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
</application>
我的 network_security_config.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">thebondnews.com</domain>
</domain-config>
</network-security-config>
此外,我拥有连接到互联网的所有权限。它在 android 9 的许多设备上运行良好,例如 Samsung galaxy s9/s9+ 和 Samsung galaxy s8/s8+ 以及许多其他设备。
错误消息是从 Firebase Crashlatics 复制的。奇怪的是我的服务器域是 thebondnews.com 但在日志中,它显示 internet.vodafone.com.eg
或有时显示 notification.etisalat.com.eg
和 10.10.10.1
。就像他们的设备中有一种重定向。
谁能帮我解决一下?或者我该怎么办?
更新 1:
难道我只允许我的域在 network_security_config.xml
并且由于其提供商导致的重定向,连接失败?
正如 Md. Asaduzzaman 在评论中所说。
The internet package of that user has finished and the operator tries to redirect him to the internet package page.
所以这不是应用程序的问题。然而,一些用户的互联网套餐有限,无法访问 Facebook、WhatsApp、Instagram 等
因此,当我的应用程序尝试连接到服务器时,它被互联网提供商重定向以阻止流量。
我有一个奇怪的问题。我的应用程序使用 http 连接到服务器。它在许多设备上都能正常工作。但是,在具有 Android 9 的小米设备中,它给了我这个错误:
Caused by java.io.IOException: Cleartext HTTP traffic to internet.vodafone.com.eg not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:142)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:469)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:549)
at com.google.firebase.perf.network.zzd.getResponseCode(zzd.java:81)
at com.google.firebase.perf.network.zzb.getResponseCode(zzb.java:14)
at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:96)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
在 AndroidManifest.xml 我有这个:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
</application>
我的 network_security_config.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">thebondnews.com</domain>
</domain-config>
</network-security-config>
此外,我拥有连接到互联网的所有权限。它在 android 9 的许多设备上运行良好,例如 Samsung galaxy s9/s9+ 和 Samsung galaxy s8/s8+ 以及许多其他设备。
错误消息是从 Firebase Crashlatics 复制的。奇怪的是我的服务器域是 thebondnews.com 但在日志中,它显示 internet.vodafone.com.eg
或有时显示 notification.etisalat.com.eg
和 10.10.10.1
。就像他们的设备中有一种重定向。
谁能帮我解决一下?或者我该怎么办?
更新 1: 难道我只允许我的域在 network_security_config.xml 并且由于其提供商导致的重定向,连接失败?
正如 Md. Asaduzzaman 在评论中所说。
The internet package of that user has finished and the operator tries to redirect him to the internet package page.
所以这不是应用程序的问题。然而,一些用户的互联网套餐有限,无法访问 Facebook、WhatsApp、Instagram 等
因此,当我的应用程序尝试连接到服务器时,它被互联网提供商重定向以阻止流量。