在Android Studio中如何使用Volley将JSON对象结果显示到TextView?
问题根因
从Android 9(API Level 28)开始,系统默认禁用所有未加密的明文HTTP流量,你当前使用的接口地址是http://开头的明文地址,所以请求直接被系统拦截,无法拿到服务器返回的JSON数据,因此TextView不会展示内容。
解决方法
你可以根据场景选择以下任意一种方案:
- 方案1:测试环境快速放开(不推荐正式环境使用)
直接在AndroidManifest.xml的<application>标签中添加明文流量允许属性即可:<application ... android:usesCleartextTraffic="true" ...> - 方案2:针对性配置网络安全规则(推荐正式环境使用)
仅对你需要访问的内网地址放开明文权限,不会全局引入安全风险:- 在
res/xml目录下新建network_security_config.xml文件,写入以下内容:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">192.168.1.123</domain> </domain-config> </network-security-config>- 在
AndroidManifest.xml的<application>标签中引用该配置:
<application ... android:networkSecurityConfig="@xml/network_security_config" ...> - 在
- 方案3:最优长期方案
给后端服务配置HTTPS证书,使用https://开头的地址请求,从根源避免明文流量风险。
额外检查项
配置完成后如果仍有问题,确认AndroidManifest.xml中已经添加了网络权限:
<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者Alam
相关产品推荐
相关产品推荐

