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

相关推荐
鹿人戛5 小时前
HarmonyOS应用开发:状态栏动画实现
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:自定义动效tab实现
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:视频悬浮窗
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:桌面卡片实现
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:Webview拉起自定义键盘
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:自定义地址选择组件
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:多重筛选
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:相机预览花屏问题解决案例
android·前端·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:网络状态监听
android·程序员·harmonyos
鹿人戛5 小时前
HarmonyOS应用开发:弹窗封装
android·harmonyos