一、背景
- 已发布线上 APP 出现接口错误,如何调试线上 APP 访问本地请求?
- 已发布线上 H5页面,静态资源或 js 调试,如何映射本地 js?
二、解决方案
1、一般解决方案
猜测(一般明显问题)。
找到原发布包,修改请求资源 url 重新打包测试。需要前后端协调配合,耗时费力。
2、Fiddler 解决方案 (映射响应)
原理:通过 fidder 拦截,将需要加载的资源映射到本地开发环境,而无需切换测试版 APP。
例如线上资源:http://online.com/api/page
映射加载本地资源:http://127.0.0.1/api/page
方法一:使用 Fiddler 自带的 AutoResponder
添加正则替换主机名规则:
regex:(?insx)http://online.com\/(?.+)$
*redir:http://127.0.0.1/${name}
方法二:使用 Stave 插件
添加规则:
匹配:online.com
替换为:127.0.0.1
正则匹配
一、前缀为EXACT:
表示完全匹配(大小写敏感)
只有 match=rules 时,才匹配
二、无前缀
表示基本搜索
表示搜索到字符串就匹配
只要 match 中包含了 rules 的字符串,即可
三、前缀为NOT:
表示发现就不匹配
与无前缀的基本搜索同理,只是发现了就不匹配,其他默认匹配
四、前缀为REGEX:
表示使用正则表达式匹配
如regex:(?insx).+.(jpg|gif|bmp)$ 包含以jpg或gif或bmp字符串结尾的,不区分大小写,且是单行的,即可匹配
规则 | 解释 |
---|---|
.+ |
匹配一个或多个字符。 如 regex:.+jpg 包含有 jpg 字符串且以 jpg 字符串结尾的,即可匹配 |
.\* |
匹配0个或多个字符。 如 regex:.+.jpg.\* 包含有 .jpg 字符串即可匹配 |
^ |
匹配字符串开始位置。 |
$ |
匹配字符串结束位置。 如 regex:.+.(jpg|gif|bmp)$ 包含以 jpg 或 gif 或 bmp 字符串结尾的,即可匹配 |
五、前缀为REGEX:(?insx)
表示匹配方式
规则 | 解释 |
---|---|
i |
表示不区分大小写 |
n |
表示指定的唯一有效的捕获是显式命名或编号的形式 |
s |
表示单行模式 |
x |
表示空格说明的 |