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

相关推荐
STCNXPARM9 小时前
Android camera之硬件架构
android·硬件架构·camera
2501_9445255410 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter
松☆12 小时前
Dart 核心语法精讲:从空安全到流程控制(3)
android·java·开发语言
_李小白13 小时前
【Android 美颜相机】第二十三天:GPUImageDarkenBlendFilter(变暗混合滤镜)
android·数码相机
小天源16 小时前
银河麒麟 V10(x86_64)离线安装 MySQL 8.0
android·mysql·adb·麒麟v10
2501_9159214316 小时前
傻瓜式 HTTPS 抓包,简单抓取iOS设备数据
android·网络协议·ios·小程序·https·uni-app·iphone
csj5017 小时前
安卓基础之《(20)—高级控件(2)列表类视图》
android
JMchen12317 小时前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
恋猫de小郭19 小时前
Flutter 在 Android 出现随机字体裁剪?其实是图层合并时的边界计算问题
android·flutter·ios
2501_9159184119 小时前
把 iOS 性能监控融入日常开发与测试流程的做法
android·ios·小程序·https·uni-app·iphone·webview