【Android】Android不能进行http请求,https抓包后请求失效的解决

Android平台HTTPS抓包全方案 前言 HTTP协议发展至今已经有二十多年的历史,整个发展的趋势主要是两个方向:效率和安全。效率方面,从HTTP1.0的一次请求一个连接,到HTTP1.1的连接复用,到SPDY/HTTP2的多路复用,到QUIC/HTTP3的基于UDP传输,在效率方面越来越高效。安全方面,从HTTP的明文,到HTTP2强制使用TLSv1.2,到QUIC/HTTP3强制使用TLSv1.3,越来越注重数据传输的安全性。总而言之,HTTP协议的发展对用户是友好的,但是对开发者而言却不那么友善。 抓包是每个程序员的必修技能之一,. 阅读详情

当把应用的targetSdkVersion设置成24(Android 7.0)或更高时,使用抓包工具(比如Charles)无法对https请求进行抓包(https请求显示红色叉叉),并且https请求发不出去,即使安装了Charles的证书。

当把应用的targetSdkVersion设置成28(Android 9.0)或更高时,应用的http请求发不出去,系统只允许发送https请求。发送http请求会报错:

Exception: IOException java.io.IOException: Cleartext HTTP traffic to * not permitted

当同时设置targetSdkVersion=28或以上,并且使用抓包工具抓包,那么你的应用就会变成无法联网状态(单机)。

从2019年8月开始,Googe Play要求我们应用的targetSdkVersion必须设置成28或以上,那么以上的问题我们都会遇到。

如果你的项目中使用到了apache的HttpClient组件,那么在targetSdkVersion=28或以上时,Googe Play要求需要在AndroidManifest的application标签中增加以下配置:
<uses-library android:name="org.apache.http.legacy" android:required="false" /> <!--跟Activity同级别-->

如何解决以上问题呢?

一、设置允许http请求

在AndroidManifest.xml文件中给application配置属性

android:usesCleartextTraffic="true"

示例

  <application
        android:name=".App"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true"
        android:theme="@style/AppTheme" >

加上这个属性后,就能发http请求了。

二、允许charles对https请求抓包

在AndroidManifest.xml文件中给application配置属性

android:networkSecurityConfig="@xml/network_security_config"

并且在res文件夹下创建xml文件夹,并添加network_security_config文件,文件内容如下:

<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>

这个配置的作用是信任自签名ssl证书。这样你就能使用charles对https进行抓包了。

当你同时给application加上以上两个属性后,比如

 <application
        android:name=".App"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:theme="@style/AppTheme" >

你会发现,http请求还是发不出去,但是https抓包是可以的。因为配置android:networkSecurityConfig="@xml/network_security_config"这个属性后,android:usesCleartextTraffic="true"这个配置就会失效。原因可能是个bug吧。

如何让这两个配置都生效呢?

先去掉AndroidManifest.xml中android:usesCleartextTraffic="true"属性,然后在network_security_config文件中base-config标签加上属性cleartextTrafficPermitted="true"即可。

因此,要解决这两个问题,只需要给AndroidManifest.xml中的application标签配置属性
android:networkSecurityConfig="@xml/network_security_config"

示例:

 <application
      android:name=".App"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:networkSecurityConfig="@xml/network_security_config"
      android:theme="@style/AppTheme" >

network_security_config文件完整内容如下:

<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>
http(S)系列之(四):Fiddler手机客户端抓包以及android7.0以上手机无法抓取https解决办法 骚聊: 这段时间发现心慌慌,自我分析了一下:1.每篇文章都是带着《学习的目的+个人实践+个人理解》编写的,越深入越爽那是夜话,技术是越深入越细心谨慎然后越爽,学习不可操之过急,并且必须坚持不懈;2.时间,感觉自己在追逐时间,有的时候在偷点懒。努力到感动自己,拼搏到无能为力不是我的初衷,我也非常讨厌这句话,我的设想是照顾家庭之外的时间坚持不懈完成自己的理想,但是有的时候偷了懒,所以心里不爽利。 前言 http(s)涉及安全的目的肯定是防信息泄漏,防信息篡改并被冒充,本篇文章主要针对http以及https分开讨 阅读详情

相关推荐

安卓逆向-网络抓包

网络抓包 代理抓包模式(中间人攻击,只能抓应用层的数据) Fiddler Charles VPN 192.168.0.5 网卡混杂模式(wireshark HTPPS) 路由器抓包(网络组网方式,有些路由器带有抓包功能,是公司监控员工网络流量的方法) Hook 域名 把https 改成 http HTTP://WWW.YUANRENXUE.COM/LIST/(因为https要进行证书校验) Hook常见的网络请求库 代理抓包模式( Fiddler Charles 中间人攻击) 能抓 Http/Http

Samsam的博客 2589

初次使用http打不开页面,使用https打开过后使用http协议又能正常访问

http协议为什么打不开https站点 在访问一个https的站点,比如 https://www.aaa.com,首次访问时,访问的地址是 http://www.aaa.com,(不加S),出现的是网站不可用,打不开,再次使用https进行访问,就能正常打开。随后在使用http协议进行访问,会自动重定向到https的域名,这是浏览器缓存之后自动重定向的行为,或者是服务器端没有做好http到htt...

weixin_30773135的博客 2464

Charles抓包神器进阶:5分钟搞定安卓HTTPS抓包(附证书安装避坑指南)

本文详细介绍了使用Charles抓包工具进行安卓HTTPS抓包的完整流程,特别针对证书安装环节提供避坑指南。从环境配置到高级技巧,帮助开发者快速掌握网络代理调试方法,解决SSL证书验证等常见问题,提升移动应用开发与测试效率。

pepsi的博客 842

Android 9.0 网络权限的问题以及android:usesCleartextTraffic

android打包的时候,目标API级别高于27,无法获取http请求问题解决(网络权限问题)

qq_36428855的博客 1262

HTTPS抓包证书信任失效的5种实战解决方案

HTTPS抓包是移动端调试的基础能力,其核心依赖TLS证书信任机制。当Charles等代理工具无法解密HTTPS流量时,本质是客户端拒绝信任代理生成的中间证书——这涉及系统证书库管理、应用网络栈配置、证书固定(Certificate Pinning)策略及运行时校验逻辑等多个技术层面。在iOS 15+和Android 7+之后,系统默认隔离用户CA证书;Flutter、React Native等跨平台框架更绕过系统信任链;而金融、政务类App常通过SO层硬编码或Subject字段检测主动拦截代理证书。本文围

weixin_30386713的博客 639

MuMu模拟器+Charles抓包实战:解决安卓App抓不到数据的5个常见问题

本文详细介绍了使用MuMu模拟器配合Charles进行安卓App抓包的实战教程,重点剖析了抓不到数据的五大常见问题及其解决方案。内容包括代理设置、证书安装、IP端口配置、网络模式选择及防火墙处理,并针对HTTPS解密失败、流量绕过等难题提供了专业排查思路,帮助开发测试人员高效完成网络调试。

weixin_28309571的博客 1030

Android中无法访问http类型网址的解决办法

Android中无法访问http类型网址的解决办法

xiaokang666的博客 2590

【实战指南】BurpSuite与雷电模拟器9完美配合——安卓高版本HTTPS抓包全解析

本文详细解析了如何使用BurpSuite与雷电模拟器9完美配合,实现安卓高版本HTTPS抓包的完整流程。从环境准备、代理配置到证书安装的常见问题解决,提供了实战技巧和优化建议,帮助开发者和安全测试人员高效完成移动应用抓包分析。

weixin_29218509的博客 590

【Charles】-雷电模拟器-安卓HTTPS抓包实战指南

本文提供了一份详细的Charles抓包工具在雷电模拟器上进行安卓HTTPS抓包的实战指南。文章核心在于打通Charles、雷电模拟器和HTTPS协议之间的壁垒,重点讲解了环境准备、系统证书安装、代理配置等关键步骤,并分享了常见问题排查方法,帮助开发者高效解密和分析App网络流量。

ii567的博客 984

告别Fiddler/Charles:手把手教你用mitmproxy搞定安卓/iOS抓包与HTTPS解密

在网络调试与安全分析领域,抓包是理解应用通信、排查问题的核心技术。其原理是通过代理服务器作为中间人(Man-in-the-Middle, MITM),拦截并解析网络请求与响应。对于加密的HTTPS流量,关键在于安装并信任代理工具生成的CA证书,以实现流量解密。这项技术的核心价值在于为开发者、测试工程师和安全研究人员提供了透明、可控的网络洞察能力,广泛应用于移动应用调试、API接口测试、安全审计和性能分析等场景。本文聚焦于**mitmproxy**这一强大工具,它凭借开源、跨平台和高度可编程的特性,成为替代F

android_mylove的专栏 564

安卓Root下系统证书目录配置:HTTPS抓包最后一公里

安卓HTTPS抓包失效,本质是App对证书的信任机制问题——自Android 7.0起,targetSdkVersion≥24的应用默认仅信任/system/etc/security/cacerts/下的系统级CA证书,而非用户安装的证书。其原理基于OpenSSL的subject_hash_old哈希命名规则、DER二进制编码强制要求及root:root+644刚性权限控制。该机制保障了应用层SSL校验的安全性,但也成为调试与安全测试的关键瓶颈。典型应用场景包括金融类App抓包分析、网络协议逆向、自动化渗透

weixin_30363509的博客 673

安卓微信连接fiddler等抓包工具无法抓取https

问题描述: 在手机连接pc的fiddler后,安卓微信打不开https页面,安卓的浏览器、qq等都可以正常访问https,ios也都可以,就只有安卓微信放问https是空白页面 解决思路: 一. 证书没有正确安装 连接抓包工具无法访问https的,首先判断是证书问题。在浏览器访问10.0.0.99:8888 ,点击最下面的证书进行安装 安装好证书后,发现仍然访问...

dingbenji5337的博客 1489

安卓HTTPS抓包实战:Xposed+JustTrustMe绕过SSL Pinning

HTTPS作为保障网络通信安全的核心协议,通过SSL/TLS加密防止数据在传输过程中被窃听或篡改。其原理基于非对称加密和证书体系,确保客户端与服务器之间的身份认证和信道安全。在移动应用开发和安全测试中,分析HTTPS流量对于调试接口、评估安全性至关重要。然而,现代安卓应用广泛采用SSL Pinning(证书绑定)技术,将应用只信任预设的特定证书,导致常规抓包工具无法解密流量。为解决这一难题,可以借助Xposed框架的动态代码注入能力,配合JustTrustMe模块,在运行时Hook证书验证的关键方法,从而绕

weixin_34268753的博客 455

安卓9+ HTTPS抓包失效原因与Burp证书系统级安装指南

HTTPS抓包是移动安全测试的基础能力,其本质依赖于中间人代理(MITM)对TLS连接的解密能力。实现该能力的关键在于客户端操作系统对代理CA证书的信任机制——从证书格式、存储路径、文件命名规范到信任链加载逻辑,每一环都受系统安全策略严格约束。安卓9(API 28)起,系统默认禁用用户安装CA证书,强制要求证书必须以DER格式写入/system/etc/security/cacerts/并采用SPKI哈希命名,否则即使安装成功也无法被App进程识别。这一变化直接影响Burpsuite、夜神模拟器等主流工具链

weixin_30540691的博客 601

VizCut 全自动批量视频二次去重处理!支持视频无水印解析下载和批量剪辑,完全免费,使用简单!

可制作和分享剪辑模板,已提供20+种剪辑方案,内置众多扫光蒙版素材。支持二次去重批量处理,完全免费,无广告,且支持视频无水印解析下载,非常强大。如果说我们处理的视频需要进行一样的参数设置的话,就可以把我,1设置的参数设置为模板,后面就可以一键调用。1. 本地CPU处理,可设置线程数,可开启GPU加速,无任何限制,全看机器性能。适用场景:自媒体搬运、短视频二创、批量去重等,完全免费,无广告干扰!3. 20+种参数可调可选,内置很多相关素材。可保存为模板,可复用、可分享、可导入。2. 所有参数的设置,

goodfat的博客 5324

车机破解避坑指南:为什么你的CarPlay盒子不识别?从USB设备ID解析兼容性问题

本文深入解析车机USB设备兼容性问题,特别是CarPlay盒子不识别的原因,从硬件ID到识别机制全面剖析。通过ADB工具和root权限操作,提供详细的破解方案和兼容性测试结果,帮助用户解决车机与第三方设备的连接问题。

weixin_29175469的博客 602

Mac环境下对android app抓包

环境 Mac电脑 Android手机 抓包工具 Charles 步骤一、安装 Charles官网链接:http://www.charlesproxy.com/破解版:http://www.waitsun.com/charles-3-11-4.html(如果链接失效了,可以在 www.waitsun.com 上面直接搜最新破解版)破解步骤:1.安装好Charles后,在应用程序中找到,右键选择“显示包

博客 1万+

ESP8266入门(一)固件烧录及常见问题分析

为了实现对数据的远程收集和分析,偶然间发现了esp8266这个模块,对此进行了深入的学习,可是在学习之初遇到了大量的问题,这个系列文章就为大家讲讲我遇到的坑以及解决办法,还有esp8266如何连上oneNet云平台的方法。因为我用的是esp8266nodemcu,可以直接连接usb进行烧录,如果用模块的话接线就比较麻烦,可以去搜搜看.

Jerryxuzherui的博客 8955

Android HTTPS抓包失效的四大根因与绕过实战

HTTPS抓包是移动安全分析与逆向工程的基础能力,其本质涉及TLS协议原理、Android系统证书信任机制、应用层网络配置及自定义加密逻辑。从TLS握手失败到SNI过滤,从Network Security Config限制到应用层二次加密,每一层防护都对应特定的系统行为与开发实践。掌握Android 7+用户证书隔离策略、TrustManager动态Hook、APK重打包覆盖网络安全配置等关键技术,不仅能解决‘看不到HTTPS流量’的常见困境,更能支撑金融类App风控分析、接口逆向与安全测试等真实场景。本文

weixin_30512089的博客 650

RK3568-Linux-麒麟系统---更新制作麒麟rootfs

RK3568 Linux系统 麒麟国产麒麟镜像

qiuzw2003的博客 5360

计算机毕设:线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

1761

安卓高版本HTTPS抓包:终极解决方案

system 分区不可读,只要有 root 权限就可以,都在文章中,仔细看哦

fnhfire_7030的博客 4882

ABAP Module Pool 编程入门:把 Table Control 用透,在 Dynpro 里做出可编辑的列表界面

摘要:Table Control是SAP GUI中用于对话式事务的多行数据交互控件,具备滚动、选择、修改等功能。它通过CXTAB_CONTROL/CXTAB_COLUMN结构实现动态控制,需在PBO/PAI中配合LOOP循环处理数据流。开发时需注意LINES、TOP_LINE等关键字段设置,并采用并行循环简化编码。典型应用包括订单行维护、主数据管理等场景,支持多选删除、列排序等业务需求。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 344

drony+fiddler抓包

目录 引言 代理抓包原理 部分应用不能抓包的原因 解决方案 实际操作步骤(Android) 1:安装drony (这里手机使用的Android设备) 2:开启代理抓包软件(这里代理抓包软件使用的是Fiddler) 3:配置drony转发 证书校验原理 不能解密的原因 解决方法及操作方法 IOS设备操作步骤(IOS) 引言 HTTP应用层的抓包已经成为日常工作测试与调试中的重要一环,最近接触新项目突然之间发现之前的抓包手段都不好使了,顿时模块与模块之间的前端与服务之间的交互.

qq_24530769的博客 9073

使用 Tesseract 在 C# 中进行光学字符识别(OCR)

你可以根据需要对 Tesseract 进行自定义配置,例如设置识别的分辨率、识别模式等。// 只识别数字// 设置自定义变量本文只讲述了简单的使用方法,未涉及字库训练,识别的准确率与训练的字库有关。

仰望星空的博客 4733

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2374
上一篇: 【Java】Android动态权限相关问题梳理
下一篇: 【Android】Android APK打包流程图及工具
devnn
博客等级 码龄12年 2005粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值