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

相关推荐
法欧特斯卡雷特10 分钟前
Kotlin Sequence 真的如此不堪吗?
android·后端·编程语言
pengyu12 分钟前
系统化掌握Flutter开发之GestureDetector(一):筑基之旅
android·flutter·dart
帅次20 分钟前
Flutter Widget 体系结构解析
android·flutter·ios·小程序·xcode·web app·dalvik
罗狮粉 992 小时前
Mysql主从复制和Mysql高可用以及负载均衡配置
android·mysql·负载均衡
@Dai2 小时前
【Python】为什么要写__init__.py
android·java·python
缘来的精彩3 小时前
Android JNI性能优化与字符串加载实践
android·性能优化·jni·androidndk
weixin_4607838711 小时前
Flutter解决TabBar顶部页面切换导致页面重载问题
android·javascript·flutter
qhs157312 小时前
Kotlin字符串操作在Android开发中的应用示例
android·开发语言·kotlin
网络安全(king)14 小时前
Android networkSecurityConfig 代码配置
android
遇冷则凝14 小时前
升级到Android Studio 2024.2.2 版本遇到的坑
android studio