0 概述

文档内容:主要描述使用Charles工具抓取移动端APP与服务器传输数据的操作教程。
文档用图:支持开发者学习Charles抓包,辅助SDK接入问题排查和反馈。

1 关键定义

Charles:PC端网络封包截取工具,可用于截取移动端应用程序与服务器端网络通讯协议内容。
抓包:packet capture,将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。

2 安装Charles

2.1 下载Charles安装包
下载地址:http://www.charlesproxy.com

2.2 使用与激活
试用规则:基本可满足常规问题抓包需求
30天内:免费使用,使用时长无限制;
30天后:限制使用,使用时长受限制,每30分钟提示并重启一次。
激活方式:
操作入口:Charles菜单栏-》“Help"->“Resgistered Charles…”
配置内容:输入Registered name和License key。

3 配置Charles

3.1 配置代理
操作入口:Charles菜单栏->“Proxy”->“Proxy Setting”->“Proxies”
配置内容:
Port:代理端口值,默认填写8888,或者自定义,前提是不能和系统已占端口冲突。
Enable transparent HTTP proxyig:勾上。

3.2 安装证书
操作入口:点击Charles的菜单栏->“Help”->“SSL Proxying”->“Install Charles Root Certificate”, 并将Charles证书“添加”到登录钥匙串,再进入“钥匙串访问”页面。


操作入口:登录钥匙串->Charles证书->信任->使用此证书
配置内容:选择“始终信任”,并关闭证书详情,需要输入电脑密码确认更新设置。


Windows电脑注意事项:
安装证书时,存储位置选择“本计算机”,证书存储选择”受信任的根证书颁发机构“。





3.3 设置SSL代理和抓取域名
操作入口:Charles的菜单栏->“Proxy”->“SSL Proxying Settings”->“SSL Proxying”
配置内容:
Enable SSL Proxying:勾上,即开启SSL代理。
添加Location:点击下方”Add",在Host输入“*”,即设定为抓取全量域名请求。

4.配置手机

4.1连接代理
注意事项:
确保手机连接的无线网络与电脑一致,并且手机没有连接VPN。
4.1.1获取代理服务器地址和端口
操作入口:Charles的菜单栏->“Help”->“SSL Proxying”->“Install Charles Root Certificate on a Mobile Device or Remote Browser”
获取内容:如下图示例,服务器地址为10.90.153.229,端口为8888。


4.1.2 手机连接WIFI代理
注意事项:
。确保手机连接的无线网络与电脑一致,并且手机没有连接VPN。
。下文以Apple iOS系统为例介绍配置,安卓手机修改方式大同小异,可自行探索,主要是开启手动代理,并设置代理服务器地址和端口。
·操作入口:设置->WiFi无线局域网->进入对应WiFi详情->配置代理配置内容:完成以下配置并“存储”。
。手动:勾选
。服务器:填写按照上文「4.1.1获取代理服务器地址和端口」获取的服务器地址。
。端口:填写按照上文「4.1.1获取代理服务器地址和端口」获取的端口。
。示例

4.2安装Charles证书。
方法—:
a.联网:手机已按照上文「4.1.2手机连接WiFi代理」连接网络。
b.下载:使用手机默认浏览器safari,访问地址chls.pro/ssl,并允许下载证书,安卓手机可尝试使
用chrome浏览器。
c.安装:在“设置->已下载描述文件-安装”,安装Charles证书。
d.信任:在“设置->通用->关于本机->证书信任设置(滑到最下面)”",开启对Charles证书信任。
e. iOS示例:

。方法二:如果方法一不能成功安装,使用导入安装。
。获取证书:点击Charles菜单栏->Help->SSL Proxying -> Save Charles Root Certificate,选择pem格式,下载到电脑。
。安装证书:将证书导入到手机,点击安装即可。
。安卓手机安装证书常见问题:
。无法安装:证书下载下来是一个*.pem 的文件,可尝试重命名为*.crt文件;
。找不到证书:在网络中选择高级设置/安全选项中,点击安装证书,找到下载证书位置并安装。。无法安装:下载证书后直接点击会报错“无法安装”(如小米MIUI),可在系统设置里搜索"安装证书”,找到后选择刚下载的证书进行安装。
。手机无法访问chls.prolssl问题:
。确保手机未开启VPN,并与电脑使用同一个无线网络;。PC若为windows系统,需要关闭Windows防火墙。

5抓取数据

。前置条件:完成上文「2安装Charles」 「3配置Charles]「4配置手机J。
注意事项:按照上文「3.3设置SSL代理和抓取域名」设置全量域名抓取。
5.1操作Charles
·操作步骤:
a.进入会话界面:在PC端打开Charles,进入Session界面,如无可在“Charles菜单栏->File->New Session”新建。
b.手机端触发请求:在手机启动游戏并等待完成加载,完成你问题的复现步骤,同时观察Session界面是否已出现对应域名。
c.找到目标数据:
i.选择目标域名下的请求,可输入Filter过滤目标域名;
ii.查看请求信息、响应信息。
d.反馈问题:如需SDK技术协助排查,请在“Charles菜单栏->File->Save Session As"保存会话,并反馈给运营或技术支持。

5.2学习更多
。进阶学习:Charles官网英文文档,Charles功能介绍和使用教程,或自行搜索更多教程。
。温馨提示:完成抓包后,关闭手机WiFi代理,以免在Charles停止工作时影响手机网络的正常使用。

Charles抓包教程相关推荐

  1. 学完这篇Charles抓包教程,我直接把fiddler卸载了

    01.charles简介 charles是一款非常优秀的抓包工具,全平台支持,在mac,windows,linux上都可以使用,既可以抓取web端的包,也可以抓app端的包. charles主要的功能 ...

  2. Windows10下Charles抓包教程

    抓包步骤:从下载安装.客户端证书安装.把下载的证书导入到浏览器里. 1.下载安装 2.安装好以后打开,配置Charles证书:选择help--SSL Proxying--install Charles ...

  3. 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包

    Reference Charles 功能介绍和使用教程 - 掘金 学完这篇Charles抓包教程,我直接把fiddler卸载了 - 知乎 一.下载微信视频号里的视频方法小结 1.1 抓包 例如char ...

  4. Mac下Charles的抓包教程

    Mac电脑上 charles 抓包教程 1.Charles简介 2.Charles安装 3.将Charles设置成系统代理 4.Charles功能介绍 5.过滤网络请求 6. iphone手机抓包-- ...

  5. 最简单的Charles抓包https教程

    这里介绍charles抓包教程,亲测可行 一.背景 对于我司app都是使用的https网络请求,但开发中需要快速定位问题,因而对https请求抓包有非常高的依赖性.如果不对https做别的处理,抓包就 ...

  6. charles抓包ios抓拍教程

    charles抓包ios抓拍教程_百度搜索 https://www.jianshu.com/p/724ef9d3efb6 https://www.cnblogs.com/junhuawang/p/72 ...

  7. (亲测可行)charles抓包夜神模拟器保姆级教程

    前言 作为it人员,无论是为了测试,还是为了一些研究,抓包必不可免.夜神模拟器配合charles无疑是不错的选择. 下面教程是本人通过网上大量资料进行实践,亲自实验后,完全没问题整理出来的最新教程,基 ...

  8. charles手机抓包教程

    charles手机抓包教程 一.设置系统代理 二.电脑端安装证书 安装的时候就注意证书放在"受信任的证书委发机构"就行,其他的都是点下一步 三.设置代理 四.设置手机上的代理 让手 ...

  9. Charles 抓包工具教程(七) Charles- compose 创建模拟请求

    本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ Charles- compose 创建模拟请求 一.背景 二.Compose 一. ...

最新文章

  1. laravel-admin 关闭debug模式导致异常信息到页面的排查
  2. linux wget下载整个ftp目录(含子目录)
  3. Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况...
  4. mysql root 提权_mysql以ROOT权限提权方法
  5. 1250 Fibonacci数列(矩阵乘法快速幂)
  6. 学Java好不好?从业方向都有哪些?
  7. MySQL(11)数据库实现高可用架构之MMM
  8. 徒手撸了个markdown笔记平台
  9. 签入在服务器上之后,别人获取了,在解决方案资源管理器中找不到。
  10. scala seq java_Scala中的两个Seq比较
  11. 今日头条ocpm计费规则_入门篇|信息流广告的游戏规则—竞价机制
  12. 从714里连续减去6减几次得0_小学数学1—6年级基础知识整理 ,预习复习都能用...
  13. Spring Cloud Hystrix 进行服务熔断设置时,报错找不到对应的服务熔断方法
  14. UE4 VR中一种比较清晰的UI制作方式
  15. eclipse注释模板与代码规范导入例子及配置文件
  16. vscode打开setting.json文件
  17. [转]被历史歪曲得最多的皇帝--隋炀帝杨广简介
  18. 计算机桌面来回闪烁,Windows10系统电脑屏幕一直闪烁的解决方案
  19. 计算机电子预览室配置清单,完整的停车场管理系统设计方案-附停车场管理详细大样图及安装图!...
  20. 2019在职跨考南大计算机非全日制专硕-初试364经验帖

热门文章

  1. 用leangoo看板工具轻量级协作——OKR的管理和跟踪
  2. Cocos3.x跟Cocos2.x的区别
  3. 【C++深陷】之“decltype”
  4. 关于Webpack前端工程化构建,你必须要掌握这些核心知识点
  5. java取出list的最后一个值?从Java中的ArrayList获取第一个和最后一个元素?
  6. bugku souce
  7. Scala之偏函数Partial Function
  8. Easyx教程(一)——下载及创建窗口
  9. 大通证券分析报告(0607)
  10. 使用Office打开csv文件乱码