码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发系列-Charles

时间:2018-04-22 13:01:27      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:显示   方案   file   解决   option   本机   seq   控制   一件事   

概述

Charles相当于一个插在服务器和客户端之间的“过滤器”。当客户端向服务器发起请求的时候,先到charles进行过滤,然后charles在把最终的数据发送给服务器;
注意:此时charles发给服务器的数据,不一定是客户端请求的数据;charles在接到客户端的请求时可以自由的修改数据,甚至可以直接Block客户端发的请求
服务器接收请求后的返回数据,也会先到charles,经过charles过滤后再发给客户端;同理:客户端接收的数据,不一定就是服务器返回的数据,而是charles给的数据;

技术分享图片

Charles使用

Charles配置

如果想要抓包,第一件事情,就是把charles设置成为本机和服务端之间的”过滤器”;让所有的网络请求全部经过charles,这样就可以捕获并记录到你请求的内容和返回数据了。

设置iPhone的HTTP代理

技术分享图片

启动 Charles 后,第一次 Charles 会询问你是否把Charles设置为系统的代理,选择Allow。这样就配置完成了。

charles 主界面的介绍

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
– Structure/结构视图,将网络请求按访问的域名分类,比如某个域名下有n个资源请求,那么所有此域名下的请求都会在这里做一个详细的分类;

  • Sequence/序列视图,将网络请求按访问的时间排序,按照你的电脑的发送请求顺序进行。
    技术分享图片

Charles Filter过滤

求多了有些时候会看不过来,对于需要抓取的某个请求,通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方案一

Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我查看的域名地址
技术分享图片

方案二

在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了;

Charles 网络环境模拟

在开发中中有些bug需要在网络慢的场景中复现。我们可以利用Charles控制手机的网速。
在 Charles 的菜单栏选择 “Proxy”->”Throttle(节流) Settings”,然后勾选 Enable Throttling 选项,选择添加一个Throttle preset。这样就可以了;

技术分享图片

Charles 抓包内容乱码解决

在安装的Charles程序右键显示报内容找到Info.plist文件JVMOptions在默认的-Xmx512m后面敲空格 添加-Dfile.encoding=UTF-8

技术分享图片

对于其它的一些使用方法可参考:http://zhubangbang.com/charlesproxy

iOS开发系列-Charles

标签:显示   方案   file   解决   option   本机   seq   控制   一件事   

原文地址:https://www.cnblogs.com/CoderHong/p/8905944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!