前言

最近测试和实施经常在UAT环境调试出故障让我看,因为环境不一样调试起来比较麻烦。因此使用fiddler将线上地址重定向到本地开发地址。再加上目前项目上是前后端分离,在进行一些流程上。开发起来自测比较麻烦

介绍

fiddler是Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务

使用

  1. 创建一个拦截器,设置拦截规则,只拦截对应的域名hosts
    image.png
  2. 创建重定向规则,将对应模块转发到本地的域名。如图所示
    image.png

问题

1.其实就是实现了反向代理的功能,但是需要考虑跨域问题。可以使用下面代码来解决跨域

@Configuration
//@EnableWebMvc
public class MemberCorsConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //设置允许跨域的路径
        registry.addMapping("/**")
                //设置允许跨域请求的域名
                .allowedOrigins("*")
                //是否允许证书 不再默认开启
                .allowCredentials(true)
                //设置允许的方法
                .allowedMethods("*")
                //跨域允许时间
                .maxAge(3600);
    }
}
  1. 因为使用公司的VPN,fiddler经常会报The system proxy was changed,click to reenable fiddler capture
    解决:
    进入到Fiddler–>Rules–>Customize Rules
static function DoReattach(o: Object, ea: EventArgs)
{
ScheduledTasks.ScheduleWork("reattach", 1000, innerReattach);
}
static function innerReattach()
{
FiddlerApplication.UI.actAttachProxy();
}
static function OnRetire()
{
FiddlerApplication.oProxy.remove_DetachedUnexpectedly(DoReattach);
}

image.png
在main()方法中添加
FiddlerApplication.oProxy.add_DetachedUnexpectedly(DoReattach);