中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

跨平臺web調試工具whistle怎么用

發布時間:2022-01-17 18:51:03 來源:億速云 閱讀:188 作者:柒染 欄目:云計算

這篇文章給大家介紹跨平臺web調試工具whistle怎么用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

whistle是基于Node實現的跨平臺web調試代理工具,類似的工具有Windows平臺上的Fiddler+Willow,基于Java實現的Charles,及公司同事基于Node實現的Livepool等等;whistle與所有的web調試代理工具一樣,主要功能也是用于查看、修改HTTP、HTTPS、Websockt的請求響應或者作為HTTP代理服務器,但不同于Fildder+Willow、Charles和Livepool通過斷點的方式修改請求響應,whistle采用的是類似配置Hosts方式,通過配置修改請求響應,且提供規則分組功能及通過域名、路徑、正則三種匹配方式(系統的hosts配置只支持域名匹配),特別針對終端調試提供了weinre,log等功能,并支持通過Node模塊進行擴展。

基本功能

Github地址

安裝啟動

安裝啟動whistle,需要以下四個步驟: 安裝node、安裝whistle、啟動whistle、配置代理。

  1. 安裝Node(建議安裝最新版本,LTS版本或當前版本都可以,如果已安裝可以忽略此步驟):https://nodejs.org/
    安裝tnpm():

    npm install @tencent/tnpm -g --registry=http://r.tnpm.oa.com --no-proxy
    
    # Mac、Linux用戶可能需要加sudo
    sudo npm install @tencent/tnpm -g --registry=http://r.tnpm.oa.com --no-proxy


  2. 安裝whistle及在公司網絡訪問外網需要用到的插件txpac插件:

    tnpm install -g whistle @tencent/whistle.txpac
    
    # Mac、Linux用戶可能需要加sudo
    sudo tnpm install -g whistle @tencent/whistle.txpac


  3. 啟動whistle
    w2 start
    whistle默認端口為8899,如果要修改端口號,可以這么啟動:
    w2 start -p 8888
    重啟whistle:
    w2 restart
    關閉whistle:
    w2 stop
    更多內容請查看命令行幫助:
    w2 help

  4. 配置代理
    whistle需要手動配置瀏覽器代理或者系統代理(代理的ip為whistle所在機器的ip,如果是本機就填127.0.0.1;端口號為啟動時設置的端口號,默認為8899):

    • 配置瀏覽器代理(推薦使用):
      安裝chrome代理插件: whistle-for-chrome插件 或者 Proxy SwitchySharp
      安裝firefox代理插件: Proxy Selector

    • 配置系統代理:
      1) Windows
      2) Mac

使用方法

安裝node、安裝whistle、啟動whistle、配置代理后可以開始使用whistle,用Chrome瀏覽器打開whistle配置管理頁面

界面相關操作參見界面功能;

配置模式

傳統hosts的配置模式:

# 單個host
ip hostname

# 組合host
ip hostname1 hostname2 ... hostnameN

# 例如
127.0.0.1 www.example.com
127.0.0.1 a.example.com b.example.com c.example.com

whistle的配置模式:

# 單個操作
pattern operator-uri
# 如果pattern和operator-uri不同時為域名或路徑的一種組合,位置可以調換
operator-uri pattern

# 組合模式
pattern operator-uri1 operator-uri2 ... operator-uriN
# pattern1和operator-uri不同時為域名或路徑的一種組合,可以如下配置
operator-uri pattern1 pattern2 ... patternN

其中,pattern可以為:

  1. 域名:www.test.com(所有該域名下的請求都會匹配operator-uri)

  2. 路徑:http://www.test.com/xxx(http://www.test.com/xxx 及其子路徑的請求都會匹配operator-uri),或不加協議protocol://www.test.com/xxx,protocol可以為http、https、ws、wss(http://www.test.com/xxx及其子路徑的請求都會匹配operator-uri)

  3. 正則:/^https?:\/\/([^\/]+)\/xxx/(http(s)://host:port/xxx及其子路徑的請求都會匹配operator-uri,且在operator-uri中可以通過$1, $2, ..., $9獲取url里面的子匹配)

operator-uri由上述基本功能抽象成的形如protocol://ruleValue的URI,whistle會根據匹配的operator-uri的protocol及ruleValue修改請求或響應,protocol和ruleValue的詳細內容參見whistle幫助文檔及協議列表。

例如:

# 修改www.example.com的響應cors
www.example.com resCors://*
# 或
resCors://* www.example.com

# 同時修改多個自定域名或路徑
resCors://* /example\.com/ a.test.com b.test.com
# 修改www.test.com的帶端口host、referer和響應的cors
www.test.com 127.0.0.1:8080 referer://http://www.example.com resCors://*

一些例子

  1. 攔截HTTPS

    不開啟攔截HTTPS,無法在whistle看到HTTPS和Websockt請求響應的明文,且只能通過whistle對HTTPS和Websockt設置host、代理等有限的操作,要通過whistle完全操作HTTPS、Websocket請求響應,需要開啟HTTPS攔截及在系統或瀏覽器安裝whistle的根證書,具體參見:https://avwo.github.io/whistle/webui/https.html

  2. 配置host

    # 傳統hosts配置
    127.0.0.1 www.example.com # 等價于: www.example.com  127.0.0.1
    127.0.0.1 a.example.com b.example.com c.example.com
    
    # 支持帶端口
    127.0.0.1:8080 www.example.com # 等價于: www.example.com  127.0.0.1:8080
    127.0.0.1:8080 a.example.com b.example.com c.example.com
    
    # 支持通過域名獲取host
    host://www.qq.com:8080 www.example.com # 等價于: www.example.com  host://www.qq.com:8080
    host://www.qq.com:8080 a.example.com b.example.com c.example.com
    
    # 支持通過正則表達式匹配
    127.0.0.1:8080 /example\.com/i # 等價于: /example\.com/i  127.0.0.1:8080
    127.0.0.1:8080 /example\.com/ /test\.com/
    
    # 支持路徑匹配
    127.0.0.1:8080 example.com/test # 等價于: example.com/test 127.0.0.1:8080
    127.0.0.1:8080 http://example.com/index.html https://www.test.com/test


    完整功能參見協議列表。

  3. 修改請求

    以下功能都支持通過域名、路徑、正則匹配方式,為方便只以域名匹配方式為例,其它同理:

    # 修改url參數
    www.qq.com urlParams://E:\test\params.json        
    
    # 請求方法
    www.qq.com method://post
    
    # 添加請求頭
    www.qq.com reqHeaders://(x-a=1&x-b=a%20b)
    
    # 修改referer(修改referer快捷方法)
    www.qq.com referer://http://ke.qq.com/
    
    # 修改cookie(修改請求cookie快捷方法)
    www.qq.com reqCookie://{reqCookie.json}
    
    # 修改請求表單
    www.qq.com params://{form.json}


    JSON對象可以存在本地文件,或存在界面的Values,也可以內聯到Rules配置里面,具體參見實現原理、數據格式。
    完整功能參見協議列表。

  4. 修改響應

    以下功能都支持通過域名、路徑、正則匹配方式,為方便只以域名匹配方式為例,其它同理:

    # 修改響應狀態碼
    www.qq.com statusCode://500 # 請求不會發送到后臺服務器,可以用來模擬4xx、5xx請求
    www.qq.com replaceStatus://404 # 請求返回后再修改statusCode
    
    # 添加響應頭
    www.qq.com resHeaders://(x-res-a=1&x-res-b=a%20b)
    
    # 修改響應類型(修改響應類型的快捷方法)
    www.qq.com resType://text/plain # 或者: www.qq.com resType://text
    
    # 請求替換
    www.qq.com https://www.baidu.com
    
    # 本地替換(windows中目錄分割符可以用`\`,也可以用`/`)
    www.qq.com file://E:\xxx # 等價于: file://E:/xxx www.qq.com
    # Mac或Linux
    www.qq.com file:///User/xxx/test
    # 如果要讓本地沒有對應文件的請求繼續請求線上,可以采用
    www.qq.com xfile://E:\xxx
    
    # 本地替換jsonp
    www.qq.com tpl://E:\xxx.json # xxx.json: {callback}({"ec": 0})
    www.qq.com xtpl://E:\xxx.json # xxx.json: {callback}({"ec": 0})
    
    # 注入html、css、js(whistle會自動根據響應類型封裝后注入)
    www.qq.com html://htmlFile
    www.qq.com css://cssFile
    www.qq.com js://jsFile


    JSON對象或注入的文本可以存在本地文件,或存在界面的Values,也可以內聯到Rules配置里面,

  5. 設置代理

    以下功能都支持通過域名、路徑、正則匹配方式,為方便只以域名匹配方式為例,其它同理:

    # http代理
    www.qq.com proxy://127.0.0.1:8888 # 等價于: proxy://127.0.0.1:8888 www.qq.com
    # 同時設置多個
    proxy://127.0.0.1:8888 www.qq.com /google/ /facebook/
    
    # socks代理
    www.qq.com scoks://127.0.0.1:1008 # 等價于: socks://127.0.0.1:8888 www.qq.com
    # 同時設置多個
    socks://127.0.0.1:1008 www.qq.com /google/ /facebook/
    
    # pac腳本
    # 設置辦公網pac腳本(如果安裝了whistle.txpac,則無需設置)
    /./ pac://http://txp-01.tencent.com/proxy.pac
    # 設置辦公網pac腳本(如果安裝了whistle.txpac,則無需設置)
    /./ pac://http://txp-01.tencent.com/proxy_devnet.pac


    完整功能參見協議列表。

  6. 移動端調試

    打開whistle配置界面右上角的Online按鈕獲取當前whistle的ip和端口,移動設備根據相應的ip和端口配置代理(確保移動設備和PC要在同一網段);配置完后如果還是無法訪問,可能需要關閉防火墻或者設置白名單。

    # weinre(調試網頁DOM結構)
    www.qq.com weinre://test
    
    # log(輸出網頁console打印的日志)
    www.qq.com log://{test.js}


    具體參見:weinre、log

    完整功能參見協議列表。

  7. 其它功能

    以下功能都支持通過域名、路徑、正則匹配方式,為方便只以域名匹配方式為例,其它同理:

    # 禁用緩存
    www.qq.com disable://cache
    
    # 忽略規則
    www.qq.com filter://rule|host|https


    完整功能參見協議列表。

插件擴展及應用

whistle支持通過Node模塊的方式擴展功能,具體參見:插件開發。

插件的一些應用:

  1. HTTP代理服務器功能:imweb本地代理imwebproxy(里面的Pb和CMEM的功能分別對應兩個whistle插件whistle.imwebproxy、whistle.cmem)

  2. 擴展協議功能:imweb前端本地調試環境whistle.imwebenv

  3. 擴展界面功能:whistle.websocket

關于跨平臺web調試工具whistle怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

承德县| 辉南县| 阜宁县| 禹城市| 德昌县| 峨边| 衢州市| 马龙县| 荔波县| 临夏县| 韶关市| 交口县| 黎城县| 济源市| 五峰| 惠安县| 宕昌县| 永吉县| 蕉岭县| 那曲县| 哈密市| SHOW| 伊川县| 永年县| 西乌珠穆沁旗| 陕西省| 密云县| 花莲市| 南和县| 黄骅市| 嵩明县| 盈江县| 东乌| 凌云县| 如皋市| 调兵山市| 武川县| 梁河县| 班玛县| 平遥县| 什邡市|