Retrofit报java.net.ConnectException连接失败问题求助
解决Retrofit抛出java.net.ConnectException连接失败问题
以下是针对java.net.ConnectException: Failed to connect to /10.122.3.25:7068的排查和解决步骤:
检查是否添加INTERNET权限:你只添加了
ACCESS_NETWORK_STATE,但这个权限仅用于获取网络状态,真正发起网络请求需要INTERNET权限。在AndroidManifest.xml中添加:<uses-permission android:name="android.permission.INTERNET" />验证网络连通性:先排除服务器或网络链路问题
- 用adb命令在设备上测试目标IP和端口的可达性:
# 测试IP是否能ping通 adb shell ping 10.122.3.25 # 测试端口是否开放(部分设备无telnet可换用nc) adb shell telnet 10.122.3.25 7068 - 如果ping不通或端口无法访问,说明问题出在服务器、防火墙或网络路由,和Retrofit无关。
- 用adb命令在设备上测试目标IP和端口的可达性:
处理Android 9+明文网络限制:如果目标接口是HTTP而非HTTPS
- 在
AndroidManifest.xml的<application>标签中添加:android:usesCleartextTraffic="true" - 或者通过
network_security_config.xml配置允许特定域名/IP的明文访问。
- 在
确认Retrofit的BaseUrl配置:
- BaseUrl必须包含协议头(
http://或https://),比如正确写法是http://10.122.3.25:7068/,遗漏协议头会导致解析错误,引发连接失败。
- BaseUrl必须包含协议头(
检查代理与VPN设置:
- 如果设备开启了代理工具(如Charles、Fiddler),确认代理能访问目标内网IP;若不需要代理,直接关闭后重试。
- 排查是否有VPN或防火墙应用拦截了网络请求,临时关闭这类应用测试。
内容的提问来源于stack exchange,提问作者hardcoder124
相关产品推荐
相关产品推荐

