zoukankan      html  css  js  c++  java
  • iOS开发系列-Charles

    概述

    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

  • 相关阅读:
    HDU 6106 Classes【水题】
    HDU 6106 Classes【水题】
    ACM常用解题技巧方法
    ACM常用解题技巧方法
    程序员语录
    数据库设计的三大范式
    IDEA中Java代码存入DB中为乱码
    IDEA中如何添加jar包
    Java的Protected
    Hibernate JPA 如何使用SQL文直接查询
  • 原文地址:https://www.cnblogs.com/CoderHong/p/8905944.html
Copyright © 2011-2022 走看看