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

  • 相关阅读:
    当你进退两难的时候,你想做出决定,抛硬币,当你第一次抛了之后,还想再一次抛的时候,你就知道这个问题的答案了。
    习惯几乎可以绑住一切,只是不能绑住偶然。比如那只偶然尝了鲜血的老虎。
    10个理由让你爱上程序员
    自己不做出点样子,人家想拉你一把都不知你的手在哪里。
    WSL(Windows Subsystem for Linux)笔记一安装与使用
    Nginx(三)-正向代理与反向代理
    Nginx(二)-服务模式运行nginx之WINSW
    Nginx(一)-windows下的安装配置
    WebSocket(一)-RFC6455
    NodeJS笔记(六)-Express HTTP服务器启动后如何关闭
  • 原文地址:https://www.cnblogs.com/CoderHong/p/8905944.html
Copyright © 2011-2022 走看看