You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级compileSdkVersion至28后JsonArrayRequest无法访问URL

问题原因与解决方案

这是因为Android 9(API Level 28)开始默认禁止明文网络请求(HTTP),系统会自动阻止这类未加密的网络访问,所以你升级compileSdkVersion到28后,原本正常的HTTP URL请求就失败了。

下面给你几种解决思路,按推荐程度排序:


1. 优先切换到HTTPS(推荐)

最安全的做法是把你的服务器URL改成HTTPS形式,比如https://my-domin.ir/api/getcategory。现在大部分服务器都支持HTTPS,这也是Android官方推荐的方向,能避免安全风险。


2. 配置网络安全规则(允许特定域名的明文请求)

如果暂时无法切换到HTTPS,可以通过网络安全配置,只允许你的目标域名使用明文HTTP,这样比全局开启更安全:

步骤1:创建网络安全配置文件

在res/xml目录下新建network_security_config.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 允许你这个域名的明文请求 -->
        <domain includeSubdomains="true">my-domin.ir</domain>
    </domain-config>
</network-security-config>

步骤2:在Manifest中引用配置

打开AndroidManifest.xml,在application标签里添加networkSecurityConfig属性:

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>

3. 全局允许明文请求(不推荐)

这种方式会让整个应用都允许明文HTTP请求,安全性较低,仅作为临时测试方案:

直接在AndroidManifest.xml的application标签里添加usesCleartextTraffic="true":

<application
    ...
    android:usesCleartextTraffic="true">
    ...
</application>

另外,检查你的Volley请求代码,确保没有其他配置问题——从你提供的代码来看,请求逻辑本身是没问题的,核心问题就是API28带来的明文请求限制。

内容的提问来源于stack exchange,提问作者user9862540

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:31:57