关于Android限制明文流量的网络请求

今天我在学习安卓网络编程,抓取网络图片时,遇到了一个问题。

大家知道,如果想让程序在网络中抓取图片,需要在清单文件里加入网络权限<uses-permission android:name="android.permission.INTERNET" />

我遇到了一个什么问题呢,就是明明代码没有错误就是抓取不到,我百思不得其解,非常焦虑,于是请教了我的学长,给我指了一条明路。


android:usesCleartextTraffic="true"

大家看红线的部分,就是解决问题的 “制胜法宝” ,我便查询了一些资料,了解到了安卓在Android 9.0(P ,API 28)版本,限制了http明文流量的网络请求,未加密的流量请求都会被系统禁掉。

所以如果当前应用的请求是 http 请求,而非 https,这样就会导系统禁止当前应用进行该请求,导致我的图片无法抓取成功。

------

Android 致力于保护用户们的设备和数据安全。

我们保证数据安全的方法之一是保护所有进入或离开Android 设备的数据在传输中使用传输层安全性(TLS)。

我们通过阻止针对Android P的应用程序默认允许未加密的连接来进一步改进这些保护。

 ------简书作者(破z晓

我们通过在清单文件里添加了android:usesCleartextTraffic="true",这个的作用是指示应用程序是否打算使用明文网络流量,加上一行代码后问题成功解决。避免使用明文流量的原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听所传输的数据,并且还可以对其进行修改而不会被检测到。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容