1. 程式人生 > 其它 >whistle代理

whistle代理

whistle,用於實現跨平臺的web除錯的代理工具,是基於Node實現的,它採用類似配置系統hosts的方法,可以用於檢視、修改HTTP、HTTPS、Websocket的請求、響應,還可以作為HTTP代理伺服器使用。在whistle裡,一切操作都可以通過配置來實現。

whistle參考文件地址:http://wproxy.org/whistle/

以下為whistle的一些常用操作:

1.設定host
www.ifeng.com 127.0.0.1/127.0.0.1:8080
#or
127.0.0.1:8080 www.ifeng.com

釋義:把www.ifeng.com的請求轉發到本地/本地8080埠

2.本地替換
www.ifeng.com file://E:\xx\test


#or
www.ifeng.com file://E:\xx\test\index.html

釋義:訪問http://www.ifeng.com,或先嚐試載入/E:\xx\test的檔案,如果不存在,會載入E:\xx\test\index.html,如果沒有對應的檔案,則返回404

3.請求轉發
www.ifeng.com www.aliexpress.com
1
釋義:把www.ifeng.com域名下的請求都替換成對應的www.aliexpress.com的域名

4.注入HTML、JS、CSS
www.ifeng.com html://E:\xx\test\test.html
www.ifeng.com js://E:\xx\test\test.js


www.ifeng.com css://E:\xx\test\test.css

釋義:所有www.ifeng.com域名下的請求,whistle都會根據響應型別,將處理好的文字注入到響應內容裡面,如果是HTML請求,JS和CSS會分別自動加上script和style標籤後,追加到內容後面

5.除錯遠端頁面
利用whistle提供的weinre和log兩個協議,實現修改遠端頁面DOM結構和自動捕獲頁面JS錯誤及console列印的資訊,還可以在頁面頂部或JS底部注入制定的指令碼除錯頁面資訊

weinre: www.ifeng.com weinre://test
log: www.ifeng.com log://{test.js}



6.設定手機代理
可以通過手機端,設定相關代理,進行小程式、APP等的除錯。

使用示例
專案中真實域名的代理,配置如下:

http://test-whistle-page/queryData http://127.0.0.1:8080/queryData
http://test-whistle-page http://127.0.0.1:8080

以上配置的意思是:

第一行配置服務端訪問:如果在http://test-whistle-page域名下,訪問了帶queryData的介面,那麼會把這個請求轉發到127.0.0.1:8080伺服器,並訪問這臺服務上的 http://127.0.0.1:8080/queryData介面,這裡127.0.0.1:8080是使用的本地ip和埠號,可以修改成服務部署的Ngix等。
第二行配置客戶端訪問,當訪問到http://test-whistle-page這個域名,這個域名的相關請求會轉發到本地啟動的服務上,即可以通過這種代理的方法,訪問測試/生產環境,並且在本地進行除錯。這裡的ip和埠號同①中伺服器的配置。