在使用添加【请求劫持规则】劫持网络请求之前,请先确认您已成功设置Mobile Debug代理并可正常访问网络。
1.打开【请求劫持规则管理】列表页,点击右上角的【添加劫持规则】
【匹配方式】包含【完整匹配】和【起始匹配】,请根据自行需要选择,需要注意的是:http网络请求中是不包含url中hash部分的,如 ?abc=1#def=2
【匹配值】为【匹配方式】对应的规则值,您可以通过右侧补充说明了解。
【匹配的请求方式】为需要劫持的请求类型,目前支持:GET、POST、PATCH、DELETE和PUT请求
【劫持方式】包含【静态劫持】和【动态劫持】
【静态劫持】
【Http Status】被劫持的请求返回的http状态码,如常见的200、404、500、301、302、502等
当http status值为301或者302时,您需配置【Location】值,该值表示劫持后的请求返回的301或302新地址
当http status值为其他值时:
【content-type】为劫持请求返回给设备的返回值类型,如果是文本,建议您加上charset描述,如charset=utf-8,以免出现乱码行为:
【content-body来源】content-body为被劫持的请求返回的正文部分,您可以根据需要选择从【本地文件】或者【指定文本】返回。
如果该请求需要返回特殊的header值,您可以在【Headers扩展】中配置
配置完毕后,点击右上角的【确定】按钮才算保存成功.此时使用接入代理的设备访问被劫持的接口您可以在【请求捕获列表】中看到以下标识:
该标识表示该请求已被成功劫持,
【动态劫持】
与【静态劫持】相比,【动态劫持】拥有更灵活的处理方式,它类似于【静态劫持的】301或302跳转,只是301和302是将新地址返回给浏览器,由浏览器重新发起一个请求,这个过程中如果跳转发生域名变化会出现cookie丢失的问题。【动态劫持】解决了这个问题,它直接替换当前请求的url,而不用浏览器再次发起请求。
【动态劫持】的返回值header和content部分由配置的【New URL】决定,您可以将【New URL】指定为您本机自己的测试服务器的url,通过该url动态输出返回的内容。
如: