双击HTTP请求,在右侧切换到Inspectors->Raw,如下图所示:
首先对Fiddler进行设置:打开工具栏->Tools->Fiddler Options->HTTPS,安装相应的证书DO_NOT_TRUST_FiddlerRoot
然后就是手机上安装证书。打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。
ps:
通过host来进行过滤。以下是几个选项的解释:
No Zone Filter :不通过空间进行过滤,这个是分内网跟外网的
show only Intranet Hosts: 内网
show only internet Hosts:外网
No Host Filter :不通过主机名进行过滤
Hide the following Hosts:隐藏下边输入的主机名的会话
show only the following Hosts:显示下边输入的主机名的会话
flag the following Hosts:标志下边输入的要过来的主机名的会话;
打开Fiddler,Rules->Automatic Breakpoints ->点击 Before Requests ,这样所有的请求在发送请求之前就被阻止了
接着我们的打断点修改Requests,修改请求体当然也就是修改Raw的内容了,切换到Raw,就可以修改内容了:
若是修改响应的数据,应该在after response 打断点,故打断点的步骤是,Rules->Automatic Breakpoints -> After Responses,这样响应结果就被阻止
右下角的页签,切换到Transformer
做如下的操作:
怎么解释这些操作的意思呢?
为了提高性能,响应体是有被压缩或者采用chunked(块)的方式传输,但是如果你要修改响应体,则希望是不压缩不编码.
接着我们的打断点修改Response,修改响应体当然也就是修改Raw的内容了,切换到Raw,就可以修改内容了:
首先我们需要命令行,命令行位于状态栏的上方,如下图所示:
我们先来了解一些简单的命令:
有关断点的命令:
断点即 breakpoint,所有跟断点相关的都是以 bp 为前缀。
用不带参数的命令可以清除断点,比如 bpafter 可以清除所有的响应断点。
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,之后,你会发现网络变得超级慢。
我们还需要搞明白,Fiddler模拟网路速度的原理。
在文件中搜索关键字,m_SimulateModem
if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150"; }
需求:用一个本地的文件替换一个接口的返回数据。
步骤:
选择接口,右键,save -> response -> response Body ,保存(例如:A.txt)响应体。
选择接口,在右上角选择AutoResponder页签,勾选Enable rules、Unmatched requests passthrough 两个选项,点击Add rule 按钮,在下方填写替换的规则。
第一行填写要替换的接口地址,可以写正则表达式进行模糊匹配,也可直接写接口的地址进行完全匹配。
第二行填写要替换的本地文件的地址(A.txt),当然点击下拉框,也有其他的选项供我们选择, 比如404,502等等status code。
编辑好之后,点击保存即可。这样下次再捕捉到该接口时,请求回来的数据就是本地文件中的内容了。
会弹出一个对话框,跟 Response 面板的布局一样,在上面可以填写编辑返回的数据内容。
Enable rules:控制是否激活AutoResponder选项卡,如果没有选中该选项,选项卡上的其他选项就不可选。也就是说,不勾选此项,AutoResponder是不起作用的。
Unmatched requests passthrough:如果选中该选项,不匹配的请求会正常发送到服务器,如果没有选中该选项,Fiddler会为所有和该规则完全不匹配的HTTP请求生成HTTP/404 Not Found响应。
Enable Latency:控制匹配某个规则的请求时立即执行,还是延迟Latency字段中所指定的毫秒数。如果没有选中该选项,Latency字段就不会显示,使用这个选项可以更准确地模拟现实中的服务器响应,取消该选项可以提升性能。
点击右键选择set latency…… 设置响应的延迟时间。如下图所示,延迟设置1000ms = 1s。
点击TextWizard,当鼠标放上去时,有解释:launch the textwizard to encode/decode text ,顾名思义:编码/解码文本的
弹出TextWizard窗体,在1区域填写要加码或者解码的文本,在Transform选中选择要转换的方式,就会在区域2中显示结果,本图的例子是对 https://www.baidu.com 进行urlencode 加密
首先来打开编辑CustomRules.js文档,在OnBeforeRequest函数中添加如下代码,保存文件,重启Fiddler。
if (oSession.host.toLowerCase()== ‘dispatcher.360in.com‘) { oSession.host=‘dispatchertest.camera360.com‘; oSession["ui-color"] = "orange"; }
打开Fiddler工具,在右侧点击“composer”的选项,在parsed中进行根据http发送的请求进行选择,我们是模拟post请求,故选择post,添加post的url地址,以及选择http协议的版本,填写post请求的header和body,最后点击 Execute,就可以发送post请求,在左侧可以查看到发送的请求记录。双击该请求,既可以查看详细的请求数据和返回结果。
需要根据实际情况选择不同的Content-Type。
post请求的header是这样的:
User-Agent: Fiddler Content-Type: application/x-www-form-urlencoded Host: localhost Content-Length: 34
那么在body里这样写:
city=“ZhengZhou”& name=”zwf”
如果要发送json格式的数据,则header这样写:
User-Agent: Fiddler Content-Type: application/json Host: localhost Content-Length: 34
body中这样写:
{ "city": "ZhengZhou", "name": "zwf" }
打开Fiddler工具,在右侧点击“composer”的选项,在parsed中选择get请求,之后填写get的url地址及相关的参数,再选择http协议的版本,最后点击execute按钮。
从左侧会话列表拖一个会话过来,这样就有该会话的详细信息了,在此基础上进行调整修改
原文:https://www.cnblogs.com/cinerary/p/8674361.html