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链接了

相关推荐
码龙-DragonCoding9 分钟前
一键批量提取音频、提取视频
android·音视频·提取
祉猷并茂,雯华若锦19 分钟前
Win下完美解决Allure报错,生成Web自动化测试报告
android·python·selenium·自动化
IT小盘2 小时前
08-FastAPI加MySQL实现AI对话记录持久化
android·mysql·fastapi
清泓y2 小时前
Android内存管理与性能优化面试真题
android·面试·性能优化
YF02113 小时前
Android compose详解
android
IT小码哥丶3 小时前
Android进阶之事件分发机制深度剖析
android
执明wa18 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder19 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农19 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户693717500138420 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端