Charles的奇巧淫技

大家好,我是 dom 哥。今天讨论一下 Charles 的高级用法。
Charles 是 mac 电脑的一个网络代理软件,也是我平时开发常用的一个工具,用过的都说好。
本文不是 Charles 的入门介绍,而是针对一些特殊使用场景的摸索和总结。
Tools > Map Remote
Map Remote 工具能够将请求映射到另一个服务器,它可以改变请求的目的地,HTTP 请求会透明的映射到新地址,就像直接请求新地址一样。
例如你可以将 https://A.com/a1/a2 映射到 http://B.com/b1/b2 。

最常见的一个使用场景是将线上资源映射到本地开发服务器 www.com -> localhost,以此实现本地调试线上。
Tools > Map Local
Map Local 工具能够将请求映射到本地文件,也就是将本地文件作为某个请求的返回。Map Local 和 Map Remote 相辅相成,一个映射到服务器,一个映射到本地文件。
如果说 Map Remote 是大面积覆盖,那么 Map Local 就是单点爆破。这对快速调试某个线上静态资源很方便。

比如把某个线上 js 文件下载到本地,修改修改,然后通过 Map Local 这个本地文件映射就可以直接看到效果进行验证。不必走完 CI,CD 这一套焦头烂额的等待了。
Tools > Rewrite
Rewrite 工具能够让你重写覆盖请求的任意部分,包括 request 和 response 的 header 和 body。

下面是一些使用场景:
- 重写 response header 实现 cors 跨域
- 重写 cookie 实现一些校验
- 重写 body 实现类似 Map Local 的效果
Tools > DNS Spoofing
DNS 欺骗工具可以将一个域名映射到一个 IP 地址下,和系统 hosts 文件的作用一样。

实际上,在 Map Remote 里配置 example.com -> 20.205.243.166 能实现相同的效果。
有了这个功能,我卸载了 hosts 管理软件。
Proxy > External Proxy
Charles 本身是一个代理,它还支持再配一层外部代理,通常是 VPN。请求会先过 Charles,再走外部代理。
例如,想要抓包的话需要开启 Charles 的 macOS Proxy,此时 Charles 会自动设置系统代理。

同时可能开了 ClashX 等 VPN 软件。那么就需要配置上 External Proxy:

以此实现抓包,范强两不误。
觉得不错点个小赞哦~
Charles的奇巧淫技的更多相关文章
- iOS开发的一些奇巧淫技(转载)
iOS开发的一些奇巧淫技 http://www.cocoachina.com/ios/20141229/10783.html iOS开发的一些奇巧淫技2 http://www.cocoachina.c ...
- octave之奇巧淫技向量化计算实现寻找样本点所属聚类下标
前面有文章提到过,K-means算法,第一步骤是找出样本点的的所属聚类.下面用两种方式实现,一种是普通的循环,一种是完全向量化计算. 假设 : X 是m×n样本矩阵,其每一行是一个样本,m表示样本数目 ...
- LLDB奇巧淫技
打印视图层级 这个相信很多人都会了,是ta是ta就是ta recursiveDescription 用法大概就是如下 123 po [self.view recursiveDescription] p ...
- [异常解决] 奇巧淫技——VirtualBox中的linux无显示启动,并在win7上远程控制
楼主是资深技术宅(癖),由于感觉手上的老笔记本太卡,遂狠心买了个性能至强的主机同时配了个投影仪(满足躺着打代码的意淫场景).但是体验了大概一个月发现还是坐着打代码舒服,但是如下图坐着打代码总是要抬头看 ...
- iOS开发的一些奇巧淫技
TableView不显示没内容的Cell怎么办? 类似这种,我不想让下面那些空的显示. 很简单. self.tableView.tableFooterView = [[UIView alloc] in ...
- C基础 那些年用过的奇巧淫技
引言 - 为寻一颗明星 为要寻一颗明星 徐志摩 1924年12月1日<晨报六周年纪念增刊> 我骑著一匹拐腿的瞎马, 向著黑夜里加鞭:—— 向著黑夜里加鞭, 我跨著一匹拐腿的瞎马.// 我冲 ...
- 介绍一个C++奇巧淫技
你能实现这样一个函数吗: MyType type; HisType htype; serialize_3(11, type, htype); serialize_4(type, hty ...
- iOS开发的一些奇巧淫技2
能不能只用一个pan手势来代替UISwipegesture的各个方向? - (void)pan:(UIPanGestureRecognizer *)sender { typedef NS_ENUM(N ...
- Windows的奇巧淫技(为什么GIF显示不出来??)
谁的电脑里没点小秘密?东藏西藏到最后自己都找不到了有木有?今天教大家个隐藏文件的高招: 将任意文件隐藏到图片中!怎么样?再也不用建什么「马列主义哲学」的文件夹啦!
- powerdesigner奇淫技
在日常开发中数据库的设计常常需要建立模型,而powerdesigner是个不错的选择.但很多时候用powerdesigner生成模型后再去创建表结构,会觉得烦和别扭.那么能不能数据库表建好后再生成模型 ...
随机推荐
- from my mac
hello
- JavaAgent寄生在目标进程中引起的ClassNotFoundException
今天有解决方案部的小伙伴反映,我公司XWind产品在分析客户应用程序的潜在性能问题时,总是显现诊断任务异常,为了定位问题的根因,我们马上要求解决方案部的小伙伴提供XWind相关的日志,从日志中找到了如 ...
- Nhk R1 Editorial
前言 这场比赛的锅貌似有点多-在准备的时候就已经推迟过三次,在这里为对各位比赛时造成的困扰抱歉.这是出题组第一次放比赛,欢迎批评指正. 主要问题在于 C 的数据造水了,hack 数据造反了于是没有 h ...
- ConcurrentHashMap底层源码分析
ConcurrentHashMap源码底层分析 1.ConcurrentHashMap初始化 jdk8之后,ConcurrentHashMap采用了HashMap的底层结构(数据,链表,红黑树),在此 ...
- 查看docker容器使用的cpu和内存
转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称. 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情 ...
- VS Code代码提示( AcWing算法模板,C++实现)
算法模板提取于AcWing上的代码提示 作者:yxc 链接:https://www.acwing.com/file_system/file/content/whole/index/content/21 ...
- Vue源码学习(十二):列队处理(防抖优化,多次调用,只处理一次)
好家伙, 本篇讲的是数据更新请求列队处理 1.一些性能问题 数据更新的核心方法是watcher.updata方法 实际上也就是vm._updata()方法, vm._updata()方法中的patch ...
- 自定义MyBatis拦截器更改表名
by emanjusaka from https://www.emanjusaka.top/archives/10 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址. 自定义MyBati ...
- Android Kotlin 协程初探
1 它是什么(协程 和 Kotlin协程) 1.1 协程是什么 维基百科:协程,英文Coroutine [kəru'tin] (可入厅),是计算机程序的一类组件,推广了协作式多任务的子程序,允许执行被 ...
- form表单调接口校验 比如后台验证用户名是否存在
<FormItem {...formItemLayout} label={'显示名'}> {getFieldDecorator('displayName', { initialValue: ...