Android开发 http网络请求失败问题

前言:

最近在开发安卓项目,自己本地搭了一个tomcat服务器挂json文件

项目使用retrofit来发起网络请求,

因为不是okhttp也不是那个啥httpurl,所以在profiler找不到network监控网络

打断点打了好久才发现以下几个错误

问题引入

java.net.SocketException: socket failed: EPERM (Operation not permitted)

java.net.UnknownServiceException: CLEARTEXT communication to www.httpbin.org not permitted by networ

原因

  • 1、Android P(API级别29) 是默认禁止访问http的API的
  • 2、AndroidManifest.xml 网络权限没有开启

解决办法

1、禁止掉明文流量请求的检查

在res的xml文件夹中创建 network_security_config.xml文件

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

在AndroidManifet.xml中引入这个配置

ini 复制代码
android:networkSecurityConfig="@xml/network_security_config"

2、为AndroidManifest.xml添加网络权限

进一步配置AndroidManifet.xml文件

ini 复制代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

经本人实践,可以访问http链接了

相关推荐
野生的码农1 小时前
放过自己,降低预期,及时行乐
android·ai编程
huwuhang2 小时前
索尼PS3游戏合集【中文游戏】8.12T 1430个游戏+PS3模拟器
android·游戏·智能手机·游戏机·电视
Grackers4 小时前
Android Perfetto 系列 5:Android App 基于 Choreographer 的渲染流程
android
踩着两条虫4 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
sam.li4 小时前
JADX MCP 原理与使用部署
android·逆向·jadx
冬奇Lab4 小时前
Android 15音频子系统(五):AudioPolicyService策略管理深度解析
android·音视频开发·源码阅读
亚历克斯神5 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
dalancon7 小时前
SurfaceControl 的事务提交给 SurfaceFlinger,以及 SurfaceFlinger 如何将这些数据设置到对应 Layer 的完整流程
android
dalancon7 小时前
SurfaceFlinger Layer 到 HWC 通信流程详解
android
cccccc语言我来了7 小时前
Linux(9)操作系统
android·java·linux