android - 明文通信 - Android
问题描述
我的 android 项目面临这个 Cleartext 问题。
我几乎用过所有的 stackoverflow 答案、各种博客等,但 android 不允许我连接到服务器。这是一个非常小的应用程序,将被 20+ ppl 用于每天在本地网络上上传一些数据。所以 HTTPS 对我来说是一个禁区。
清单版本-1
<application
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
android:theme="@style/AppTheme">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
清单版本 2
<application
android:allowBackup="true"
android:usesCleartextTraffic="true" <!-- With and Without -->
android:networkSecurityConfig="@xml/network_security_config"
tools:ignore="GoogleAppIndexingWarning"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Network_Security_Config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain> <!-- Debug port -->
<domain includeSubdomains="true">192.168.0.104</domain>
</domain-config>
</network-security-config>
我还尝试创建一个 minSdk 21 和 target sdk 24 项目,使用 HTTPUrlConnection
Please Guide 时遇到了同样的问题。谢谢。
我检查过的一些链接
没有为客户端启用改造 CLEARTEXT 通信
如何在 Android (9) Pie 中允许所有网络连接类型 HTTP 和 HTTPS?
https://developer.android.com/about/versions/pie/android-9.0-changes-all
Internet 权限在 oreo 和 pie 中不起作用
解决方案
你有没有试过把它添加到你的清单应用程序中,
android:usesCleartextTraffic="true"
代替
android:networkSecurityConfig="@xml/network_security_config"
推荐阅读
- linux - 想将以相同时间戳结尾的文件 tar 到单个 tar
- sharepoint - 基于多列强制执行唯一值
- vue.js - 如果 pass 或 email 错误,如何防止 nuxt auth 进入错误页面
- mariadb - 在生产站点而不是暂存站点上使用 mysql restore 出错。可以用mysql通用日志恢复吗?
- selenium - Windows 或 ubuntu 中的 Selenium Webdriver 测试(Safari)
- javascript - 如何通过不同文件中的函数重新渲染 index.js。反应
- sapui5 - 如何在 UI5 1.38 中重用来自另一个应用程序的组件?
- javascript - 如何使用 TypeScript 和 React 关闭单击按钮时的对话框?
- qt - Microsoft Store 中 Qt UWP 应用程序的崩溃报告
- sql - 数据流任务失败,因为 TempDB 已满