Android Studio应用请求JSON接口始终返回响应码0,求助排查
Android接口请求响应码0排查方案
核心排查点
确认网络权限配置
检查AndroidManifest.xml是否添加互联网权限:<uses-permission android:name="android.permission.INTERNET" />若接口为HTTP协议且设备系统是Android 9+,需在
application标签内添加:android:usesCleartextTraffic="true"或者通过
res/xml/network_security_config.xml配置允许明文流量的域名。校验请求URL合法性
确保代码中HttpURL是完整有效格式:- 无遗漏
http:///https://前缀 - 无未转义的特殊字符(如空格、中文),需手动用
URLEncoder处理参数或路径中的特殊字符
- 无遗漏
完善请求线程与异常处理
- 确认
HttpServiceClass内部的网络请求逻辑确实在子线程执行,主线程发起网络请求会直接失败返回响应码0 - 补全RxJava订阅的
onError和onComplete方法,打印异常日志定位问题:@Override public void onError(Throwable e) { Log.e("RequestError", "请求异常:", e); } @Override public void onComplete() {}
- 确认
排查
HttpServiceClass实现逻辑- 响应码0通常意味着请求未建立连接,检查类中是否正确捕获
IOException(如DNS解析失败、连接超时),是否在异常场景错误地将响应码设为0 - 确认POST请求的请求头(如
Content-Type: application/json)、请求体格式是否完全符合接口要求
- 响应码0通常意味着请求未建立连接,检查类中是否正确捕获
抓包验证请求细节
使用Android Studio自带的Network Inspector或第三方工具抓包:- 查看应用是否实际发出了请求
- 核对请求的URL、请求头、请求体是否与浏览器请求一致
- 检查是否收到服务器响应,未收到则说明网络链路存在拦截
排除网络环境干扰
- 切换至手机流量或其他无代理、无防火墙的WiFi环境测试,排除网络代理、防火墙拦截请求的可能
- 若为HTTPS接口,检查服务器SSL证书是否合法:Android 7+默认不信任自签名证书,需手动配置证书信任
内容的提问来源于stack exchange,提问作者DohrokD
相关产品推荐
相关产品推荐

