# 修改网络请求
## 在工作中时不时会因某些原因需要修改网络请求,主要有以下场景(但不限于此):
- 当前请求的的内容与将要上线的功能存在局部差异,一般是一些请求参数的差异;
- 某些后台服务ip或端口发生变更。
## 当然你可以使用Fiddler的composer对想要修改请求包进行重构——打开composer标签,将要修改的session拖到composer里即可修改。但是如果想对某些特定的url自动的改包,还得使用FiddlerScript来做。使用FiddlerScript的简要步骤如下:
1. 安装Fiddler script editor插件,安装后可以在右侧发现多了一个选项卡FiddlerScript:
![](https://box.kancloud.cn/b588fb0e5f46f8530d74f8a05abfea31_678x109.png)
2. Fiddlerscript的语法和js有点类似,简单学习下,发现如果要改请求参数可以在OnBeforeRequest这个function里对Session对象的url属性进行修改。下面是一段示例代码,可以做到自动对GET请求中的个别参数修改:
![](https://box.kancloud.cn/c031d758af5c0bc971c62e67e79799c0_942x368.png)
3. 点击左上角的【save script】保存修改.
4. 重新触发请求,使用Fiddler抓包,可以看到host参数自动被替换为了我们指定的值。
官方文档上列举了比较几类常见的改包场景:
- 添加或删除一个请求头;
~~~
oSession.oRequest["NewHeaderName"] = "New header value";
oSession.oResponse.headers.Remove("Set-Cookie");
~~~
- 重定向请求的file、hostname、port;
~~~
if (oSession.PathAndQuery=="/version1.css")
oSession.PathAndQuery="/version2.css";
if (oSession.HostnameIs("www.honebay.com"))
oSession.hostname="testhonebay.com";
if (oSession.host=="www.honebay.com:9000")
oSession.host="test.honebay.com:9000";
~~~
![](https://box.kancloud.cn/46edc87f1075b3ef31f80db79df03660_1883x460.gif)
---------------------------
- 前言
- 学习资料
- 学习网站
- 在线书籍
- 专业软件测试之道
- 基础培训
- 接口调试
- postman
- 抓包工具fiddler
- 功能介绍
- 字段说明
- Inspectors 查看数据内容功能介绍
- AutoResponder 允许拦截指定规则的请求
- Composer 自定义请求发送服务器
- Filters 请求过滤规则
- Timeline 请求响应时间
- 编码工具
- Fiddler 设置解密HTTPS的网络数据
- 拦截修改请求并重放
- 拦截-命令方式
- 拦截-手动选择
- 修改请求数据并重发
- 修改请求数据Request
- 修改返回结果Response
- Fiddler 内置命令与断点
- 过滤、查询、保存、对比会话
- 代理配置-手机抓包
- 修改网络请求
- 线上文件映射到本地调试
- chrome控制台
- 基本使用
- 编写多行命令
- 计算时间开销
- 在 JavaScript 中设置断点
- 记录语句的执行
- 监听事件
- 控制 CPU 检测
- 页面元素
- 网络
- IDE-Eclipse调试
- 基础调试
- JVM性能调优
- 系统应用测试案例
- 前端断点调试
- 接口数据抓取测试
- UI调优