whistle抓包代理

一、什么是whistle

  • whistle是基于Node实现的跨平台web调试代理工具,
  • 主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用
  • whistle用的是类似配置系统 hosts 的方式,一切操作都可以通过配置实现
  • 可以通过 Node 模块扩展功能

二、whistle在开发中常用的场景

  • 绑定host
  • mock数据,替换请求
  • 代理线上\预发资源,调试解决问题
  • 解决跨域
  • 移动端调试
    等...

三、whistle的安装及使用

  1. 安装node ( v0.10.0以上版本 )
  1. 安装whistle

    npm install -g whistle //mac sudo npm install -g whistle`
    
  1. 启动whistle

    w2 start
    

    启动后会展示访问的url列表,如下图所示

    启动完成后在chorme按照提示访问对应的地址,如果浏览器可以打开如下页面即启动成功。


  1. 配置代理
    分为全局代理、浏览器代理和移动端代理。日常工作常用的是chrome 浏览器代理以及 移动端代理。

    浏览器代理:

    安装 SwitchyOmega,然后按如下步骤配置:


    配置后可以通过插件开启\关闭代理


    移动端代理:
    (警告)
    注意:手机要和当前电脑为同一局域网(wifi)内。以 IOS 为例(安卓同理)

  1. 安装证书
    如果不安装根证书的话,不能抓 HTTPS 的包,访问浏览器会出现如下提示

    mac电脑安装证书:
    *


    *

  2. 手机安装证书:
    可以在浏览器中地址栏输入 rootca.pro,按提示安装证书
    或者通过 whistle 控制台的二维码扫码安装
    ios 10.3 之后需要手动信任自定义根证书,设置路径:设置 > 通用 >证书信任设置

四、页面简介

五、基本用法

  1. 绑定host

    whistle 不仅支持传统的 Host配置,还支持子路径和端口的 Host 转发配置,我们可以将我们的环境放在不同的规则中,随时切换,而且无缓存,切换时候生效更快

  2. mock数据
    a) 可以复制后端接口返回的数据,在whistle中保存

    (警告)

    注意:value中可以直接设置名称后缀为.json,设置后该value值会转为json格式

    b) 通过配置规则resBody指定内容替换响应内容,在请求指定接口时,代理到本地mock的数据

    当访问到beta-color.jd.id/jdid_pc_website/signIn_banner/1.0接口时,返回的值即为whistle中设置的signIn的值,我们可以随意修改返回值的状态码、字段等,以满足开发需求

    beta-color.jd.id/jdid_pc_website/signIn_banner/1.0 resBody://{signIn}
    
  1. 代理线上\预发资源,调试解决问题
    可以把线上访问的资源代理到本地资源,快速验证,无须部署代码验证

    36.110.180.148 i.3.cn 
    111.13.29.170 m.jd.id
    i.3.cn/m/v2/index/3.4.47/js/index.js   file:///Users/wanghanying1/Desktop/首页相关项目/eptid-m-index/dist/3.4.47/js/index.js resCors://* 
    i.3.cn/m/v2/index/3.4.47/js/chunk-vendors.js  file:///Users/wanghanying1/Desktop/首页相关项目/eptid-m-index/dist/3.4.47/js/chunk-vendors.js resCors://* 
    i.3.cn/m/v2/index/3.4.47/css/index.css  file:///Users/wanghanying1/Desktop/首页相关项目/eptid-m-index/dist/3.4.47/css/index.css resCors://*
    
  1. 解决跨域问题

    配置接口相应头的access-control-allow-origin: *

    // value 中增加 resCors.json,内容如下:
    origin: * 
    // rules 中配置修改响应的cors 
    m.jd.com/ resCors://{resCors.json}
    
  2. 修改cookie

    利用reqCookies 和 resCookies。修改请求头的 Cookie 和 修改响应头的 Set-Cookie

    //value中新增cookie设置的.json文件,内容如下: 
    test:123  
    // 修改请求头的 `Cookie` 
    m.jd.id reqCookies://{reqcookies.json} 
    // 修改响应头的 `Set-Cookie` 
    m.jd.id resCookies://{resCookies.json}`
    
  1. 移动端调试

    相比于在 PC 端,在移动端调试网页,主要会遇到以下两个问题:

    • 没有 Console,无法查看页面的 js 错误及通过 console.xxx 输出的调试日志
    • 无法查看、修改页面的 DOM 结构及样式

    移动端页面,虽然可以在 Chrome 的模拟器中进行调试,旦有些问题无法在pc端很好的复现。 APP 中内嵌页,在不同的机器中会遇到兼容性问题,需要在真机中才能看到效果或者复现问题,这个时候就需要 whistle 来帮助调试

    移动端捕获页面错误和 log

    m.jd.id log://
    

    Network —>Tools 下面就可以看到报错等日志了

    - 查看移动端页面的 DOM 样式

    // test印尼 用来作为标示区别不同的页面 
    https://m.jd.id/ weinre://test印尼     
    https://m.jd.com/ weinre://test主站`
    
  2. 注入vconsole

    npm i -g whistle.inspect
    

    安装成功后,可以在 Plugins 页面中看到安装的插件:

    移动端页面会出现浮动按钮,点击即可查看页面错误和log;

Tips: 了解更多可查阅whistle官网 http://wproxy.org/whistle/webui/values.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容