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

这篇具有很好参考价值的文章主要介绍了Charles抓取https请求及常见问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、背景

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

二、Charles如何抓取https请求

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

2.1 Charles https配置

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

Charles抓取https请求及常见问题解决
设置代理的端口号,比如设置为:8888,这个端口号后面手机端连接时需要用到:
Charles抓取https请求及常见问题解决
2、菜单栏点击代理》SSL代理设置

Charles抓取https请求及常见问题解决
勾选启用SSL代理,添加主机和端口都为*:
Charles抓取https请求及常见问题解决

2.2 Charles PC端证书安装

1、PC端证书安装:
菜单栏点击“帮助”》SSL代理》安装charles根证书:
Charles抓取https请求及常见问题解决
根据步骤一步步往下走:

Charles抓取https请求及常见问题解决
Charles抓取https请求及常见问题解决
安装完成后,记得去电脑的网络和Internet中设置本地使用代理为Charles开启的代理服务器:
Charles抓取https请求及常见问题解决

踩坑注意
地址这里要设置: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抓取https请求及常见问题解决
然后Charles会弹出一个提示框:
Charles抓取https请求及常见问题解决
根据提示信息,先将手机配置为使用Charles的代理。进入手机设置》WiFi,在使用的WiFi上长按,选择修改网络:
Charles抓取https请求及常见问题解决

然后设置代理为“手动”,配置服务器主机IP和端口为Charles的代理,保存:
Charles抓取https请求及常见问题解决
Charles会自动弹窗提示有设备接入,询问是否允许,选择允许:

Charles抓取https请求及常见问题解决
现在,手机上http的请求Charles已经可以正常抓取了,要抓取https的请求,先使用浏览器访问http://chls.pro/ssl下载并安装证书:
Charles抓取https请求及常见问题解决
Charles抓取https请求及常见问题解决
安装完成后,即可抓取手机端的https请求了~

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

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

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

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

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

欢迎关注我的微信公众号【程序员杨叔】:测开一枚,持续分享全栈测试知识干货。标签:自动化测试、性能测试、Java、Python、DevOps、CI/CD、小程序测试、测试工具、测试开发、测试框架/平台、测试管理…
Charles抓取https请求及常见问题解决文章来源地址https://www.toymoban.com/news/detail-437934.html

到了这里,关于Charles抓取https请求及常见问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Charles如何抓取https请求-移动端+PC端,学完不要去做坏事哦

    Charles安装完成,默认只能抓取到http请求,如果查看https请求,会显示unkonw或其它之类的响应。所以需要先进行一些配置,才能抓取到完整的https请求信息。下面针对PC端和手机端抓包的情况,分别进行说明。 PC端如何配置才能抓取到https请求: 1. 安装证书:在顶部工具栏中选

    2024年02月04日
    浏览(35)
  • HTTP 请求和响应的原理以及常见问题、解决办法

    在现代 Web 开发中,HTTP 请求和响应是最基本的通信方式。这两者是通过 HTTP 协议进行交互的,在前端和后台开发中都需要对其处理有一定的了解。我将为大家介绍 HTTP 请求和响应的处理原理以及常见问题和解决办法。 客户端向服务器发送请求,请求格式如下: 服务器接收到

    2024年02月10日
    浏览(31)
  • Android 7.0以上charles无法抓取部分https包问题

    手机通过访问chls.pro/ssl下载.pem证书,如无法安装,在文件管理器中将后缀名改为.crt 在设置中安装该证书 Charles-Proxy - SSL Proxying Setting - Include 添加需要抓包的URL:443即可 以上基本配置结束后,看下代码 AndroidManifest.xml文件的中添加android:networkSecurityConfig=“@xml/network_security_conf

    2024年02月21日
    浏览(27)
  • 常见Charles在Windows10抓包乱码问题

    废话不多说 直接开整 最近反复安装证书还是乱码 网上各种百度还是不行 首先计算机查看安装好的证书 certmgr.msc 找到并删除掉 重新安装证书 具体解决方法: 第一步:点击 【工具栏–Proxy–SSL Proxying Settings…】 第二步:配置请求的域名和端口号,*表示任意 再Charles.ini文件中

    2024年02月14日
    浏览(32)
  • Charles抓https请求乱码问题

    https是安全性更高的http协议,它增加了SSL认证,因此需要做SSL配置。 Charles本身安装时自动装了根证书,并进行过签名,因此浏览器不会信任它作为代理来抓包。 需要将Charles根证书下载一个到本机,并授权信任。 # 以下来自Charles help说明内容 Charles使用自己的根SSL证书,通过

    2024年02月04日
    浏览(30)
  • Ajax-概念、Http协议、Ajax请求及其常见问题

    其他AJAX知识 AJAX同源策略及跨域问题解决方案——点击此处 AJAX请求的不同发送方式——点击此处 AJAX 全称为Asynchronous Javascript And XML,就是 异步的JS和XML 。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势: 无刷新获取数据 。AJAX 不是新的编程语言,而是一种将现

    2024年02月13日
    浏览(25)
  • 彻底解决charles抓包https乱码的问题

    最近做js逆向,听说charles比浏览器抓包更好用,结果发现全是乱码,根本没法用。 然后查询网上水文:全部都是装证书,根本没用! 最后终于找到解决办法,在这里记录一下: 乱码的根本原因: charles证书过期了! 此时就算往操作系统导入证书也没有用! 解决办法: 菜单

    2024年01月18日
    浏览(35)
  • 测试必备工具之抓包神器 Charles 如何抓取 https 数据包?

    前言 之前我们发过一篇文章讲解了Charles抓包工具的基本使用,有需要的小伙伴可以去看上一篇文章。 之前文章讲的数据包主要是http协议,大家可以看到数据包并直接显示具体详细的内容: 但是如果抓到的是https的报文,是没有办法直接显示的,你将看到的是乱码: 那怎么

    2024年03月26日
    浏览(40)
  • Java开发中的常见问题和解决方法:如何解决常见的性能和bug问题

      在Java开发中,我们经常会面临各种各样的问题,包括性能问题和Bug。这些问题可能会导致应用程序的运行变慢、不稳定甚至崩溃。本文将介绍一些常见的Java开发问题,并提供解决这些问题的方法和技巧,帮助开发人员更好地处理性能和Bug问题。 性能问题是Java开发中最常见

    2024年02月09日
    浏览(36)
  • RabbitMQ常见问题以及实际问题解决

    ** ** 消息可靠性问题: 消息从生产者发送到Exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性? 发送时丢失: - 生产者发送的消息为送达exchange - 消息到达exchange后未到达queue MQ宕机,queue将消息丢失 consumer接收到消息后未消费就宕机 ①生产者消息确认 RabbitMQ提供

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包