博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Charles抓包方法
阅读量:4973 次
发布时间:2019-06-12

本文共 2594 字,大约阅读时间需要 8 分钟。

如果是mac在使用前需要点一下macOS proxy

抓包的作用:

抓包能看到所有发出去的请求,能帮助我们定位问题,看看是后端接口出现的问题,还是前端有问题:如果接口返回的都是对的就是前端的问题,如果接口返回异常就 是后端接口有问题

http请求抓取:

怎么抓手机上的包

1、确定你的电脑和你的手机在一个局域网里面

2、手机设置代理:

在wifi那里配 置代理选择手动服务器那里设置自己电脑IP端口号设置8888

一百种charles连接不上手机的处理方式

1、检查电脑和手机有没有连接的同一个wifi,必须tm连接的一个网

2、更换charles和移动端设备的端口,默认是8888,可以改成其他的试试

3、有可能路由器设置的ap间不能相互访问,需要登录路由器,需要登录路由器。进行求改。把用户间访问的对勾勾上。类似于这样

4、关闭电脑的防火墙。试试 首先,如果,防火墙关了还是不行,那么请把手机wifi断掉后重新连接,这样一般就可以解决问题了。 如果以上方法还是不行的话,那么请将手机wifi位置的ip地址设置成静态ip,然后重启charles工具。

5、在charles上添加手机的ip试试

查看charles端口号:

3、ipconfig,查看自己电脑的ip地址

4、手机通过设置http代理服务器,连接到电脑

  服务器输入电脑的ip

  端口和charles的端口一致,

 

5、此时charles会给出提示。有新的连接。点击allow

6、连接成功,此时手机发送的内容,charles可以抓到。

然后如果勾选了Proxy - Windows Proxy 的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。

 

怎么在模拟弱网测试 

什么样的网络属于弱网

低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范畴。

charles模拟弱网  proxy => throttle settings

配置参数解析:

bandwidth —— 带宽,即上行、下行数据传输速度
utilisation —— 带宽可用率,大部分modern是100%
round-trip latency —— 第一个请求的时延,单位是ms。
MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。

方法二:chrome的webview调试工具弱网模拟

使用chrome的webview调试工具,缺点是只适用于web页面的弱网模拟。

具体步骤:
(1)应用打开webview调试功能,具体如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}
(2)手机链接电脑,运行APP,进入具体H5页面;
(3)chrome的DevTools中打开Webview:进入chrome://inspect/#devices,会显示已经连接设备,选中待调试webview的inspect
network页面,No throttling下拉框,可以进行网络模拟。

 

怎么拦截请求

6、charles http 拦截(Breakpoints)

在Sequence 这拦,选择要拦截的接口,右击 -> Breakpoints 以后的请求和响应分别拦截一次跳到改数据内容页面。
按钮说明:

cancel 跳过不改

abort 丢弃
excute 执行(修改后点击)

 2、在浏览器中刷新该页面,Charles会跳转到Breakpoints列表

 3、篡改请求信息后,点击底部Execute按钮

 

4、返回浏览器查看服务器返回结果,返回的页面信息为http://www.nnzhp.cn/archives/category/python,而不是用户真正请求的http://www.nnzhp.cn/

篡改服务器响应结果【可以用来模拟移动端的接口返回异常的情况】

1、设置Breakpoints,将请求信息拦截,然后什么都不改,跳转到如下界面:

3、点击Text,修改返回信息,点击Execute

4、返回浏览器查看页面,展示信息如下

 给请求加参数

对需要加参数的页面进行拦截,然后刷新,到breakpoints页面点击ADD,添加需要添加的参数,点击Execute

然后等charles返回,返回带有参数,如下图:

抓Https的包

1. 安装charles ca证书

1.1 选择 help | Install Charles CA SSL Certificate

1.2 然后会弹出证书信息,选择安装证书,下一步,将证书存储改为:受信任的根证书颁发机构,下一步,完成

2. 修改charles的proxy settings

2.1 选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enabling transparent HTTP proxying

2.2 选择ssl,勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据

 这个时候去抓https://googleads.g.doubleclick.net/pagead/html/r20181107/r20180604/zrt_lookup.html返回200就正确了!

URL映射 (把一个地址的请求转发到另一个地方)

用途:比如线上有个bug需要验证,可以用线上的APP往线下发请求

访问http://www.nnzhp.cn时向http://www.cc-na.cn/这个发请求

浏览器展示如下:

 

选择Map Local,映射到本地你保存的文件上面

选择map local 是返回本地文件内容

 

 浏览器展示如下:

 

转载于:https://www.cnblogs.com/cuimeiping/p/9953288.html

你可能感兴趣的文章
[Locked] Wiggle Sort
查看>>
deque
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
C#生成随机数
查看>>