charles抓包整理

这里汇总了工作中charles的使用。

Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charles,它是Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,同时还有一个问题就是他是收费的。

Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。

  1. Structure 视图将网络请求按访问的域名分类。
  2. Sequence 视图将网络请求按访问的时间排序。?

大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

1.charles不小心点击了Ignore的使用。。。。

proxy ->Recording settings... ->下remove相关location

?

2.修改全部header信息

(1)Tools ->Rewrite ->打开如下显示框

?

(2)如下设置成功,添加Header。再次请求,变可生效,添加Header信息

?

3.截取 iPhone 上的网络封包

Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面我就以 iPhone 为例,讲解如何进行相应操作。

Charles 上的设置

要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:?

iPhone 上的设置

首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”–>“Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

在 iPhone 的 “ 设置 ”–>“ 无线局域网 ” 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,如下图所示:

?

设置好之后,我们打开 iPhone 上的任意需要网络通讯的程序,就可以看到 Charles 弹出 iPhone 请求连接的确认菜单(如下图所示),点击 “Allow” 即可完成设置。

?

4截取 Https 通讯信息

安装证书

如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。具体步骤如下。

首先我们需要在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:

?

需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 SSL proxy,如下图所示:

?

截取移动设备中的 Https 通讯信息

如果我们需要在 iOS 或 Android 机器上截取 Https 协议的通讯内容,还需要在手机上安装相应的证书。点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 弹出的简单的安装教程。如下图所示:

?

按照我们之前说的教程,在设备上设置好 Charles 为代理后,在手机浏览器中访问地址:http://charlesproxy.com/getssl,即可打开证书安装的界面,安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。

注意2:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

5.给服务器做压力测试

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下。

我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

?

接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。

?

6.修改服务器返回内容

有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。如果没有 Charles,要服务器配合构造相应的数据显得会比较麻烦。这个时候,使用 Charles 相关的功能就可以满足我们的需求。

根据具体的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:

  1. Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
  2. Rewrite 功能适合对网络请求进行一些正则替换。
  3. Breakpoints 功能适合做一些临时性的修改。

原文地址:https://www.cnblogs.com/t-gonna/p/11516090.html

时间: 2024-10-11 18:44:36

charles抓包整理的相关文章

charles抓包工具的中文乱码解决方法

charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码,网上很多是通过修改 info.plist 文件解决的,点击这里查看解决方法:https://www.v2ex.com/t/255040 我在尝试以上方法后依然没有解决,翻遍 google, 前人之鉴的方法还是很多,只是茫茫网海中找到的也是很不容易的,这个方法大家可以参考下咯~~~ 1. 打开 cha

微信开发-charles抓包

在微信开发过程中有一块不能使用开发者工具进行调试,需要查看请求的返回,故使用了charles抓包工具. 环境配置 1.http://www.charlesproxy.com/getssl/ 下载charles,安装到电脑 2.选择菜单中的 "Proxy" –> "window Proxy" 将 Charles 设置成系统代理 ,就可以抓到电脑上发出的请求. 需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charle

charles 抓包工具的使用

Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的 charles的主要功能: 1. 支持SSL代理.可以截取分析SSL的请求. 2. 支持流量控制.可以模拟慢速网络以及等待时间(latency)较长的请求. 3. 支持AJAX调试.可以自动将json或xml数据格式化,方便查看. 4. 支持AMF调试.可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看. 5. 支持重发网络请求,方便后端调试. 6. 支

jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps:服务端每秒钟能处理的请求数. 响应时间:就是你从发出请求到服务端返回给你数据的时间. 二.jmeter操作数据库 在测试计划中添加mysql-connector-java-5.1.7-bin.jar 最后添加查看结果树.如果既要查询又要修改操作选择Callable Statement这个模式. 断言

Jmeter常见操作和Charles抓包

一.jmeter常见操作 1.jmeter连接mysql数据库 第一步:新建测试计划→添加jdbc mysql jar包 第二步:新增JDBC Connection Configuration,填写Variable Name,数据库信息 Database URL:jdbc:mysql://ip/路径?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true JDBC driver class:com.mysql.jdbc.D

Charles抓包手机请求和Https请求

1.打开Charles,在Proxy里面点击Proxy Settings 2.在Proxy Settings的 Proxies添加端口 3.设置手机WLAN(注意Charles和手机连接的WIFi需在同一局域网) 4.长按连接的WIFI,出现修改网络,点击修改网络,点击显示高级选项 5.点击代理,选择手动 6.填写代理服务主机名(Charles安装电脑的ip)和代理服务器端口(Proxies添加端口),代理服务器端口需要和Proxies添加端口一致 7.以上为设置手机代理的步骤,设置成功后,如果

jmeter数据库,charles抓包,Python循环语句

jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration 配置数据 mysqlurl:jdbc:mysql://ip:port/db?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true driver class:com.mysql.jdbc.Driver       4. 操作

Charles 抓包工具(新猿旺学习总结)

Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 选择抓取的请求 原文地址:https://www.cnblogs.com/amuchen/p/10333842.html

Charles抓包工具的用途及应用

Charles抓包工具的用途: 排查问题,测试异常情况 注意:Charles不能直接抓https请求的包,需要用https://www.jianshu.com/p/ec0a38d9a8cf这个方法去配置,要不然都是乱码 应用: 1.可以拦截请求,篡改请求和响应 2.域名映射 3.弱网测试 4.过滤请求 5.抓手机的包 原文地址:https://www.cnblogs.com/mihoutao/p/10601028.html