whistle簡介

關於whistle

whistle(讀音[ˈwɪsəl],拼音[wēisǒu])基於Node實現的跨平臺web調試代理工具,相似的工具備Windows平臺上的Fiddler,主要用於查看、修改HTTP、HTTPS、Websocket的請求、響應,也能夠做爲HTTP代理服務器使用,不一樣於Fiddler經過斷點修改請求響應的方式,whistle採用的是相似配置系統hosts的方式,一切操做均可以經過配置實現html

whistle的全部操做均可以經過相似以下配置方式實現:web

pattern operatorURI

pattern 爲匹配請求url的表達式npm

域名匹配
    www.example.com
    帶端口的域名
    www.example.com:6666
    帶協議的域名,支持:http、https、ws、wss、tunnel
    http://www.example.com

    # 路徑匹配,一樣支持帶協議、端口
    https:/www.exapmle.com:6666/test

    # 正則匹配
    /^https?://www\.example\.com\/test/(.*)/

    # 通配符匹配
    ^www.example.com/test/***

operatorURI 爲對應的操做,能夠是域名或路徑,也能夠由操做協議+操做值組成(operatorURI = opProtocol://opValue)json

m.hutaojie.com 127.0.0.1:3000 filter:///proxy/ filter:///login.html #excludeFilter:///garden_home.html/

界面介紹

network

clipboard.png

rules

www.example.com res://{index.html}
www.example.com res://({"delay":6000,"body":"1234567890"})
www.example.com xfile://</Users/index.html>

匹配模式

  • 域名匹配
  • 路徑匹配
  • 精準匹配服務器

    $符號開頭
       $http://www.test.com operatorURI
  • 正則匹配socket

    支持子匹配,$0表明整個請求url,$1——$9表明子匹配的字符串
       /[^?#]\/([^\/]+)\.html/ protocol://...$1...
  • 通配符匹配工具

    ^符號開頭
       ^www.example.com/test/*** referer://http://www.test.com/$1

插件使用

npm i -g whistle.your-plugin-name

協議

  • 請求替換post

    m.hutaojie.com 127.0.0.1:3000
  • file AND xfileurl

    將請求的內容替換成指定的文件的內容spa

    www.test.com/abc file://filpath

則請求http://www.test.com/abc/index...,若是不想自動補全能夠使用操做符<>:

www.test.com/abc file://<filepath>
  • rawfile

    徹底自定義http的報文,包括header和body,通常不用這個,除非有完整的http報文。

  • filter

    excludeFilter:表示排除匹配的請求
    includeFilter:只保留匹配的請求

  • method

    m.hutaojie.com method://post
  • statusCode

    設置狀態碼,不會發起請求,要配合resBody等使用

    statusCode://200
  • replaceStatus

    覆蓋響應的狀態碼

  • ua
    設置請求頭的user-agent
  • reqDelay/resDelay

    設置延遲請求/響應的時間

  • reqHeaders/resHeaders

    設置請求/響應的額外頭部

    m.hutaojie.com reqHeaders://{test-reqHeaders.json}

    test-reqHeaders.json:

    x-test1: value1
    x-test2: value2
    x-testN: valueN
  • reqPrepend/resPrepend,reqAppend/resAppend
    在請求/響應裏前/後插入內容
  • reqBody/resBody替換請求/響應的內容
相關文章
相關標籤/搜索