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

相关推荐
撩得Android一次心动1 小时前
Android adb 基础使用指南
android·adb
为java加瓦1 小时前
PHP MQTT 订阅服务:实时消息接收与数据库存储解决方案
android
怿星科技1 小时前
Android MVVM架构解析:现代开发的首选模式
android·架构
安卓机器1 小时前
安卓13_ROM修改定制化-----ROM解打包 修改 讲解 导读篇
android·安卓13固件修改·安卓13rom修改
钱塘天梭1 小时前
记录一次排查Android App启动时偶现卡顿问题的过程
android
奋飞安全2 小时前
别被外壳骗了,那只是柔软的伪装 - 某小说App Token算法分析
android·逆向
这个杀手不太累3 小时前
Android 通过广播监听home键和任务键
android·广播·home键·任务键
MonkeyKing_sunyuhua3 小时前
python线程间怎么通信
android·网络·python
芦半山4 小时前
穿越二十年:Android Native 内存泄漏检测的进化之路
android
恋猫de小郭5 小时前
Flutter 在 iOS 26 模拟器跑不起来?其实很简单
android·前端·flutter