Fiddler是一个http协议调试代理工具,方便进行http请求的拦截处理、改写请求、返回值等。

在Rules菜单下: 

此次更改请求 头 ,so go to OnBeforeRequest

或者

-更改RequestHeaders中的内容

  1. //根据host判断
  2. if(oSession.host=="www.baidu.com"){
  3. oSession.RequestHeaders.Remove("User-Agent");
  4. oSession.RequestHeaders.Add("User-Agent","Dalvik/2.1.0 (Linux; U; Android 9.0.1; onePlus666 Build/MOB31K)");
  5. }

-请求重定向,路径重写

  1. //请求拦截
  2. var isTelecomAuth: boolean = false;
  3. if(oSession.host == 'www.xxxxxx.com' && oSession.url.Contains("/api/")){
  4. isTelecomAuth = oSession.url.Contains("/api/web/telecom/getTel");
  5. isTelecomAuth = isTelecomAuth || oSession.url.Contains("/api/web/telecom/addAuthRecord");
  6.  
  7. //如果不是运营商授信,进行拦截
  8. if(!isTelecomAuth){
  9. oSession.host = 'api.xxxxx.com';
  10. oSession.url = oSession.url.Replace("/api/", "/");
  11. }
  12. }

-更改ResponseBody中JSON数据

Go->go to OnBeforeResponse定位到OnBeforeResponse函数,在末尾添加:

  1. if(oSession.host == 'www.xxxx.com' && oSession.url.Contains("/api/xxx")){
  2. //更改后的JSON数据
  3. var mylogin='{"uids":[200005445],"card_type":1,"cmd":"2124525","token":"26fed74802233c112bb7e9fcb97a11ac"}';
  4. var requestJson=Fiddler.WebFormats.JSON.JsonDecode(mylogin);
  5. var reJsonDes=Fiddler.WebFormats.JSON.JsonEncode(requestJson.JSONObject);
  6. oSession.utilSetRequestBody(reJsonDes);
  7.  
  8. //替换字符串
  9. //var strBody = oSession.GetRequestBodyAsString();
  10. //oSession.utilSetRequestBody(strBody.Replace("com.jyblife.risk.profile.service.AuthStateService","com.jyblife.risk.profile.service.AuthStateService"));
  11.  
  12. //打印修改后的内容
  13. //MessageBox.Show(oSession.GetRequestBodyAsString());
  14.  
  15. }

这里没有对原JSON数据修改,而直接定义了新的JSON数据替换。

PS:

https://blog.csdn.net/qq_37299249/article/details/70558861

https://www.cnblogs.com/yanjc/p/6716733.html

如何在 Fiddler Script 中 自定义 修改 Request 、 Response的更多相关文章

  1. Thinkphp框架中自定义修改success和error页面

    Thinkphp框架中自定义修改success和error页面 Thinkphp框架的默认success和error太难看,可以自定义设置,步骤如下: (注意:TP原框架中的success跳转有问题, ...

  2. 如何在logback.xml中自定义动态属性

    当使用logback来记录Web应用的日志时,我们通过在logback.xml中配置appender来指定日志输出格式及输出文件路径,这在一台主机或一个文件系统上部署单个实例没有问题,但是如果部署多个 ...

  3. .net中自定义过滤器对Response内容进行处理

    原文:http://www.cnblogs.com/zgqys1980/archive/2008/09/02/1281895.html 代码DEMO:http://files.cnblogs.com/ ...

  4. 如何在js文件中实现获取request.getCotextPath();

    我们在jsp中可以方便的使用“request.getCotext()”来获取工程的根目录. 但是如果我们的js代码存在一个单独的js文件中,这时候再想获取根目录,我们就要自己截取了.可以采用下面的方式 ...

  5. 如何在spingboot项目中自定义自己的配置

    在实际开发中,为了方便我们常常会考虑把配置文件的某一类配置映射到配置类上,方便spring容器加载,实现方法如下: 1. 书写配置文件信息:书写某一类特定字段开头的配置信息,例如在yml配置文件中可以 ...

  6. 如何在nlp问题中定义自己的数据集

    我之前大致写了一篇在pytorch中如何自己定义数据集合,在这里如何自定义数据集 不过这个例子使用的是image,也就是图像.如果我们用到的是文本呢,处理的是NLP问题呢? 在解决这个问题的时候,我在 ...

  7. 对chain.doFilter(request,response)的理解

    他的作用是将请求转发给过滤器链上下一个对象.这里的“下”指的是哪里 ? 指的是下一个filter,如果没有filter那就是你请求的资源. 一般filter都是一个链,web.xml 里面配置了几个就 ...

  8. 如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容?

    原文:如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容? 文章名称: 如何在ASP.NET Core自定义中间件读取Request.Body和 ...

  9. Fiddler中设置断点修改Request和Response

    Fiddler中设置断点修改Request Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据.设置断点 ...

随机推荐

  1. 将map中的值赋值给一个java对象

    Map tag=new HashMap(); tag.put("001"," 张三"); tag.put("002","李四&qu ...

  2. js实现60s倒计时效果

    适用于获取验证码等其他场景,下面代码直接粘贴句可以使用 // 60s获取验证码的js与html var timer = null; var count = 60; $('.box>button' ...

  3. 记一次linux服务部署

    虽然很简单,但是还是想记录一下: 准备一台云主机并连接到云主机上 因为是 springboot 项目,采用了前后端分离部署.所以就没有使用 Tomcat.为应用程序创建文件夹. 添加启动脚本 star ...

  4. Mac 10.12下安装python3环境

    python3感觉用虚拟环境会比较好操作一些,也不用直接卸载python2. 一.基于brew快速安装 # 安装python3 brew install python3 # 安装pip(好像3自带pi ...

  5. 《Unity3D 实战核心技术详解》书中关于矩阵的错误

    最近一直在学习实时渲染,不免要接触线性代数.而渲染中,一定会用到矩阵,当我再次去复习我之前看的书时,发现<Unity3D 实战核心技术详解>关于矩阵就有几处错误 ,特标注出来. 书的第一章 ...

  6. Go语言无锁队列组件的实现 (chan/interface/select)

    1. 背景 go代码中要实现异步很简单,go funcName(). 但是进程需要控制协程数量在合理范围内,对应大批量任务可以使用"协程池 + 无锁队列"实现. 2. golang ...

  7. htop使用详解

    一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为top的增强版,相比top其有着很多自身的优势.如下: 两者相比起来,top比较繁琐 默认 ...

  8. mysql忘记密码时如何修改密码

    1.首先关闭mysql服务 2.进入mysql安装目录,我的是在C:\Program Files\MySQL\MySQL Server 5.5\bin 3.dos命令行执行:mysqld -nt -- ...

  9. 如何禁用package-lock

    因为 package-lock.json是自动生成的,可以配置 npm 来避免经常需要手动删除这个文件. 在当前项目禁用 package-lock.json 控制台下输入 echo 'package- ...

  10. 通过Comparable来实现对自身的比较

    import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.Equa ...