69.使用charles对app请求进行抓包,请求断点,修改请求与返回的数据,重新发送请求(面试点:点击高级,去掉代理中所有勾选项)

在App开发与后台联调过程中,经常会遇到后台数据返回不全,请求参数需要修改,请求需要重发等情况。
如果每次都在app端修改,或者自己造数据,会增加工作量,而且每次要重新运行app,浪费时间。
因此,经过研究,可以使用抓包工具charles,对app进行抓包,请求断点,修改请求与返回的数据,重新发送请求。
简单的抓包流程与charels设置这里不做过多介绍,这里举例子使用的是charles4.1.
首先看,主要的按钮介绍:

20170908114315039.png

①重新发送指定请求:

在发送一次请求后,在左边列表选中该请求,点击如上图所示重新发送按钮即可模拟请求。

②请求断点:

点击如上图请求断点按钮,开启请求断点。进行过网络请求后,选中该请求,右键,点击breakPoint,设置该请求的断点。
断点设置成功,页面处于loading状态

20180526132356158.png

然后再进行一次该地址的请求,便可在断点处修改请求参数与返回的参数。

20170908114956316.png
20170908134214303.png

第三步,点击Execute后,等数据返回进行修改response的数据,再次点击Execute,即可实现篡改返回数据来进行app的测试,eg:修改订单状态等。

20180526132418378.png

转手机的包的步骤:
如果是使用charles抓包。一定要tm的保证手机和电脑连的是一个网。
1、proxy setting,查看Charles,端口


1162361-20170519150348775-1904731167.jpg

2, 勾选


1162361-20170519150518260-633012227.jpg

3、ipconfig,查看自己电脑的ip地址
4、手机通过设置http代理服务器,连接到电脑服务器输入电脑的ip端口和charles的端口一致,


1162361-20170519150933291-424282292.jpg

5、此时charles会给出提示。有新的连接。点击allow
6、连接成功,此时手机发送的内容,charles可以抓到。

Charles安装和抓包及报错
1.charles安装

下载charles4.0.1破解版,官方下载只能试用30天。网盘下载地址:https://pan.baidu.com/s/1eSwwvo2。(里面包括.dmg(用于安装)和.jar文件(用于破解))破解方法:在Finder的应用程序中找到Charles.app,右键选择“显示包内容”,之后进入Contents文件夹,接着进入Java文件夹,用破解文件(也就是jar文件)替换charles.jar文件。到此就破解了。

image.png

2.安装证书如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。具体步骤如下。我们需要在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。(如果证书是不信任的那就设置为信任)如下图:

image.png

双击Charles证书:

image.png

选择始终信任:

image.png

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

填入的端口号和 Charles中的Proxy Settings,一样

image.png

4.iPhone上面的设置。


image.png

首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”–>“Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图:在 iPhone 的 “ 设置 ”–>“ 无线局域网 ” 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有“HTTP 代理”一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888(若此时设置代理无效,则先忽略此网络,重新连接后再设置代理即可)。如下图:

image.png

5.安装手机证书

image.png

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

image.png

注意:这边的fe80:0:0:0:aebc:32 这是ipv6的地址

在手机safari上面输入:chls.pro/ssl,安装文件。

image.png

通常这样就可以进行网络抓包了。但是这只是仅仅针对http请求。如果要抓取https请求,则还需要做第6步。我们先来看看没有做第6步的情况。对一个接口打上Breakpoints。在进行网络截取的时候会发现一直报错。

image.png
image.png

报Failed to parse headers:EOF reading HTTP headers,原因是不能截取https的网络请求。

加上第6步即可。此时如果碰到抓取到的https请求接口一直显示红色X<unknown>,则需要进行如下操作:设置->通用->关于本机->证书信任设置->针对根证书启用完全信任下的Charles Proxy CA开关打开。

6.勾选https的截取功能

image.png

Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 HTTPS 网络请求,可以在该请求上右击,选择 SSL proxy,如下图:

这样,对于该 Host 的所有 SSL 请求可以被截取到了。当截取到网络请求红色箭头向下的时候即可改变网络接口返回的内容。比如此时可以将code码改为000001,data内容也可以做修改。

image.png

Charles模拟网络环境,限制网络速度 Charles Throtting

image.png

image.png

开启限制网络,直接在乌龟上操作,乌龟亮了,表示开启了限制网络

image.png

Charles mock假数据

前端开发经常遇到自己逻辑写完了但是接口还没写好,还得等着接口,这时候就可以自己去造点假数据了。

一般后端先写完接口文档和前端定好数据结构才去写接口逻辑,

而在后端接口逻辑写完之前前端可能已经把前端的逻辑写好了,

需要相应的数据去铺页面,这时候我们就可以用Charles的mock功能在本地去模拟一些返回数据

实战经验:
IOS中实验,要以.json 结尾来处理,以.txt 结尾的不行

配置如下:

1首先保证手机和pc在同一网络环境下

2手机添加代理,主机名:pc的ip,端口:charles配置的端口号,我一般为8888

3在charles中右键某个要添加的接口选择最下面的Map Local,情况Query那行,然后选择本地json文件就可以了


image.png
image.png

android设置代理

操作路径:设置-->WLAN,选中网络长按(不同设备操作方式不一样,有些事点击更多按钮)-->修改网络-->高级选项,将代理选项设置为手动,在代理服务器主机名处填写你要设置的代理服务器IP,端口填写对应的端口(如Fiddler为8888),设置完毕后点击保存即可

image.png

通常情况下用第一种方式即可完成代理设置,不过有些android设备比较奇葩没法通过上述方法设置或找不到设置入口的情况下也可以通过adb指令的方式设置代理

设置代理的时候,一定要勾选高级选项,否则看不到设置代理的地方,如图上边的绿色勾选

当网络设置了vpn,用charles抓包,走的是android模拟器,操作模拟器,抓不到网络的链接,是因为网络没有给模拟器设置代理

如何为android模拟器设置代理

屏幕快照 2020-06-17 下午3.14.45.png

这边,然后退出模拟器,打开charles就可以监听到抓到模拟器的接口了

当你的电脑有用vpn 链接公司网络,你的手机在用charles代理链接你的电脑的wifi网络,有时候是连不上公司网络,那你可以先把公司的vpn关了,让手机代理charles链接你的wifi网络,链接成功以后,在vpn链接公司网络

image.png

charles显示这个提示的时候,一般是你链接代理的时候出现

用Charles抓包后,关闭,网络正常电脑无法打开网页。解决办法:

提示:正常情况下将wifi的代理 由手动重新设置成自动即可连接。

1 打开网络偏好设置

image.png

2 打开网络代理 (点击高级)

image.png

3 去掉代理中所有勾选项;

image.png

然后保存就可以了。猜测原因是请求被拦截了或者是使用Charles时改了部分设置!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容