Charles抓取https请求及常见问题解决

大家好,我是杨叔。每天进步一点点,关注我的微信公众号【程序员杨叔】,获取更多测试开发技术知识!

一、背景

APP测试的时候,通常都需要通过抓包工具抓取各类请求,查看接口的入参、返回值等,用于分析定位问题。常用的抓包工具有fiddler、charles等,抓取http的请求比较简单,https的请求稍显复杂。由于杨叔更喜欢charles的页面风格,本篇文章主要介绍以下两点:
1、Charles如何抓取电脑端和手机端的https请求;
2、安卓手机无法抓取app https请求的原因和解决方案;

二、Charles如何抓取https请求

Charles抓取http请求非常简单,安装好软件后打开记录按钮即可抓取。抓取https请求相对复杂一些,需要一些配置和安装证书。

2.1 Charles https配置

1、菜单栏点击代理》代理设置

在这里插入图片描述
设置代理的端口号,比如设置为:8888,这个端口号后面手机端连接时需要用到:
在这里插入图片描述
2、菜单栏点击代理》SSL代理设置

在这里插入图片描述
勾选启用SSL代理,添加主机和端口都为*:
在这里插入图片描述

2.2 Charles PC端证书安装

1、PC端证书安装:
菜单栏点击“帮助”》SSL代理》安装charles根证书:
在这里插入图片描述
根据步骤一步步往下走:

在这里插入图片描述
在这里插入图片描述
安装完成后,记得去电脑的网络和Internet中设置本地使用代理为Charles开启的代理服务器:
在这里插入图片描述

踩坑注意
地址这里要设置:http=127.0.0.1:8080;https=127.0.0.1:8080,不要分开设置前面地址填127.0.0.1,后面端口填:8080,试了这种填法只能抓http请求,无法抓https请求。就直接在地址里面填:http=127.0.0.1:8080;https=127.0.0.1:8080,这样http和https的请求都能抓到。

完成以上步骤,PC端https请求即可正常抓包。

2.3 Charles 手机端证书安装

1、手机端证书安装:
菜单栏点击“帮助”》SSL代理》在移动设备或远程浏览器上安装charles根证书:
在这里插入图片描述
然后Charles会弹出一个提示框:
在这里插入图片描述
根据提示信息,先将手机配置为使用Charles的代理。进入手机设置》WiFi,在使用的WiFi上长按,选择修改网络:
在这里插入图片描述

然后设置代理为“手动”,配置服务器主机IP和端口为Charles的代理,保存:
在这里插入图片描述
Charles会自动弹窗提示有设备接入,询问是否允许,选择允许:

在这里插入图片描述
现在,手机上http的请求Charles已经可以正常抓取了,要抓取https的请求,先使用浏览器访问http://chls.pro/ssl下载并安装证书:
在这里插入图片描述
在这里插入图片描述
安装完成后,即可抓取手机端的https请求了~

三、安卓手机无法抓取app https请求的原因和解决方案

现象:即使各项配置、证书都完全安装配置好之后,很多使用安卓手机的同学去打开一个APP测试抓包效果时,会发现依然只能抓取http请求,https的请求还是抓取失败:
在这里插入图片描述
原因:安卓7.0版本及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而APP应用是不会信任这些证书。证书没有被信任,就导致只能抓取http请求,而https这一类的请求则无法抓取。而目前市面上的很多手机的安卓版本已经远远大于7.0了:
在这里插入图片描述
解决方案:
方案一:IOS和安卓<7.0的版本没有此问题,因此如果条件允许,可以换为苹果手机或安卓版本低于7.0版本的老手机去抓取;

方案二:研发人员可以代码中设置不启用该安全策略生成测试APP包,所以通常研发打的测试APP包是没有该问题的,可以正常抓取。因此当正式发布对外的APP无法抓取https请求,可以用测试的APP包来抓取请求;

如果你也碰到同样的问题,恰好你的手机也是安卓手机,可以先看看自己是不是抓的是正式APP的请求,然后试试用公司的APP的测试包先看看是否能正常抓包,而不是花很多的时间去排查配置、证书的问题哦~

=========================================================
都看到这里了,如果对你有帮助,麻烦点个赞+收藏+分享,一键三连啦~

欢迎关注我的微信公众号【程序员杨叔】:测开一枚,持续分享全栈测试知识干货。标签:自动化测试、性能测试、Java、Python、DevOps、CI/CD、小程序测试、测试工具、测试开发、测试框架/平台、测试管理…
在这里插入图片描述

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Charles抓取HTTPS请求,首先需要安装并配置Charles软件。以下是在Windows系统上使用Charles抓取HTTPS请求的步骤: 1. 首先,下载并安装Charles软件。在安装过程中,确保选择安装Charles的SSL证书。 2. 打开Charles软件,并在菜单栏中选择“Proxy”>“SSL Proxying Settings”。 3. 在SSL Proxying Settings窗口中,点击“Add”按钮添加需要抓取HTTPS请求的域名。你可以输入一个具体的域名,比如example.com,或者使用通配符,比如*.example.com,以抓取该域名下的所有请求。 4. 确认勾选“Enable SSL Proxying”选项,并点击“OK”保存设置。 5. 在手机或电脑上,打开网络设置,并将HTTP代理设置为Charles的代理地址和端口号。默认情况下,Charles的代理地址是127.0.0.1,端口号是8888。如果你使用的是手机,还需要将手机连接到与电脑相同的局域网。 6. 回到Charles软件,在菜单栏中选择“Proxy”>“Start SSL Proxying”以启动HTTPS请求抓取。 7. 现在,当你在浏览器或其他应用程序中发起HTTPS请求时,Charles将自动捕获并显示这些请求。你可以在Charles的“Session”栏目下查看和分析抓取到的HTTPS请求。 请注意,由于HTTPS请求的加密性质,Charles抓取HTTPS请求时需要使用证书进行解密。因此,在首次访问某个网站时,你可能会收到一个安全警告。在这种情况下,你需要信任Charles的SSL证书才能继续访问网站并正常抓取HTTPS请求。 总结一下抓取HTTPS请求的步骤:安装并配置Charles软件,添加需要抓取的域名,设置代理,启动SSL代理,然后在Charles中查看和分析抓取到的HTTPS请求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Charles抓取https请求详解](https://blog.csdn.net/WsXOM853BD45Fm92B0L/article/details/78139094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用Charles进行HTTPS抓包](https://blog.csdn.net/chuyouyinghe/article/details/120236916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值