背景

whistle是一款非常优秀的http抓包工具,而且可以通过nodejs来安装,对mac等系统非常友好。其出现结束了window只能靠fiddler,而mac只能靠charles等历史。博主从14年开始使用mac电脑,日常开发也使用mac下的ide,而mac下的抓包依靠charles,为此博主还买了charles的正版注册码。

自从使用上whistle以后,博主完全忘了charles和fiddler的存在,可以想象whistle的魅力有多大。

whistle的功能

whistle是一款强大的代理工具,可以通过配置来改变请求参数(包括url)和返回的参数,而本文我将会给大家如何通过配置修改header的参数值。

总结下来,whistle提供的功能有:

  • 修改url请求规则
  • 修改请求参数,包括header头,param参数,post请求体
  • 修改返回包,包括返回的header,返回的参数等

博主最喜欢的就是将https的请求链接改为http请求,在测试小程序等模块等时候特别有用。

更多功能可以参考官方文档:https://wproxy.org/whistle/

修改header参数步骤和注意事项

官方给出的配置规则是:

pattern headerReplace://req.header-name:pattern1=replacement1&pattern2=replacement2

pattern headerReplace://res.header-name:pattern3=replacement3

不熟悉whistle的朋友可能看到这些规则比较懵逼,接下来博主将会一一说明:

  • pattern 为url的规则,也就是命中的url规则将会进行操作headerReplace。
  • headerReplace 为替换命令。
  • req 则是请求的header,res则是回复的header。
  • header-name 要修改的header字段名。
  • pattern1 字段值中的正则值。
  • replacement1 将正则pattern1命中的字符串替换为replacement1。

注意:pattern1 需要使用/pattern1/括起来,不然规则上无法识别正则。

示例:

https://c.abc.cn/  http://172.168.xx.xx:8000/  headerReplace://req.token:/.*/=abc

解释:

以上完成修改header参数的值。