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

Android Studio如何通过RESTful API从本地服务端获取JSON数据

安卓端无法连接本地后端服务的解决方案

你遇到的是安卓应用访问本地后端失败的典型场景,按以下步骤排查即可:

  • 修正访问地址
    你代码中写的http://localhost:8080/quiz里的localhost指向的是运行APP的设备本身,而非你跑后端服务的电脑:

    • 用安卓模拟器调试时,将地址替换为http://10.0.2.2:8080/quiz,这是模拟器预留的指向宿主机的专属IP
    • 用真机调试时,保证手机和电脑处于同一局域网,将地址替换为你电脑的局域网IP(例如http://192.168.3.4:8080/quiz),同时关闭电脑防火墙或者放行8080端口的入站规则
  • 开放明文HTTP访问权限
    安卓9及以上系统默认禁止HTTP明文请求,你使用的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">10.0.2.2</domain>
        <!-- 真机调试时在此处添加你电脑的局域网IP -->
        <domain includeSubdomains="true">192.168.x.x</domain>
    </domain-config>
</network-security-config>
  1. 在AndroidManifest.xml的<application>标签中添加属性:
    android:networkSecurityConfig="@xml/network_security_config"
  • 检查网络权限配置
    确认AndroidManifest.xml的<manifest>标签下已经添加网络访问权限:
<uses-permission android:name="android.permission.INTERNET" />
  • 配置后端跨域允许
    安卓端请求属于跨域请求,默认会被后端拦截,如果你用的是SpringBoot后端,直接在对应Controller类上添加@CrossOrigin注解即可,其他后端框架按对应规则配置跨域允许即可。

补充排查技巧:你当前代码Volley的错误回调仅弹出通用提示,没有打印错误日志,可在onErrorResponse方法中添加Log.e("请求错误", error.toString(), error),即可在Logcat中查看具体错误原因,加快定位效率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:54:04