我近期将把我的博文迁移至GitHub,欢迎访问:https://achaozju.github.io/
文章目录
- 我近期将把我的博文迁移至GitHub,欢迎访问:https://achaozju.github.io/
- 1 原理
- 2 Steps
- 2.0 enable SSL in Charles (此步仅限于抓取HTTPS通信)
- 2.1在本机设置网络代理
- 2.2 Charles监听通过代理的网络通信
- 2.3 拦截特定的请求或回复
- 2.4 编辑(edit)返回(request)和请求(response)
1 原理
首先,你必须明白Charles工作的大致原理。
- 在本机启动一个网络代理(proxy),所有对外的通信都必须走这个代理。
- Charles监听经过这个代理的通信。
- 通过设置相关的断点,用户可以拦截特定的请求或回复。
- 拦截之后,用户可以编辑这些请求或回复。
2 Steps
2.0 enable SSL in Charles (此步仅限于抓取HTTPS通信)
2.1在本机设置网络代理
通过System Preferences - Network入口,设置网络代理。
你可以分别设置HTTP代理和HTTP代理,这两个代理分别走HTTP通信和HTTPS通信。
2.2 Charles监听通过代理的网络通信
Charles顶部工具栏 - Proxy - 勾上macOS Proxy
此时,你如果刷新http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin,Charles的侧边栏上就会出现监听到的通信。
8081是web服务器,也就是通信终点的端口。之前设置的8087是代理,也就是通信中转的端口。两者是无关的。
2.3 拦截特定的请求或回复
开启断点: Proxy - Enable Breakpoints
设置断点:Proxy - Breakpoint Settings…
点击以修改断点规则:我这里勾选上了Request,说明我只需要拦截request。
设置example1
设置example2
此时Charles可以拦截以http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin为目的地的通信了。
2.4 编辑(edit)返回(request)和请求(response)
再次刷新http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin
就可以看到被拦截的请求。
点击Edit Request,就可以修改通信请求中Name和Value
修改后,可以点击Excute让请求继续,或者放弃,或者取消。
以上。