参考:https://blog.csdn.net/letasian/article/details/75021656

有关fiddler基础用法的介绍详见我的上一篇博客:http://www.cnblogs.com/maxigang/p/5571151.html。

本文主要介绍fiddler在本地调试过程中的两种常见的应用场景:

1-静态请求调试

2-动态请求调试

一、设置映射规则和映射文件

在介绍调试之前先通过一个简单的例子了解一下fiddler AutoResponse的配置过程和注意事项。过程很简单,但是有一些细小的坑需要注意。

首先打开fiddler(笔者使用的版本是4),选中AutoResponder 然后将下面的前面两个选项进行勾选,第三个Enable Latency可以进行自由勾选, 
点击Add Rule 上面填写线上地址,下面填写本地文件地址,可以单文件也可以整个文件夹目录,如下: 

上面是对http协议地址进行文件映射,如果是对https协议的我们还需要安装证书,需要进入Tools –>Fiddler Options –>HTTPS进行设置,如下:

如图进行勾选,当出现弹窗提示安装证书操作全部点击确定即可。

完成上面的步骤之后,有可能会发现,fiddler只能捕捉到http请求,却无法捕捉https请求,是因为浏览器需要信任fiddler才能够将请求发过去,因此需要将fiddler的证书文件导入浏览器中。

生成fiddler证书的过程详情参考:https://www.cnblogs.com/FR-Long/p/7255388.html

二、静态请求调试

上面简要介绍了在使用Fiddler进行本地调试得时候进行基本配置,该小节简要介绍一下如何使用该工具对静态请求进行调试,为了简单起见,这里以笔者在博客园主页上一个图片请求为例进行说明。

打开主页如下图所示:

可以看到笔者没有上传任何头像信息,那么如何在不上传的情况下可以尝试下本地图片作为头像是什么效果就是下面要要说的了。

首先在浏览器上点开调试模式,查看笔者的头像地址

接下来按照1小节中的映射规则进行配置,将头像图片的请求映射到本地。配置示例如下图:

配置完成后重新刷新页面,会发现头像已经修改如下图所示:

至此,图片映射已经成功,js、html等静态资源的映射完全相同。

三、动态请求调试

第二小节中介绍的是静态请求的本地调试方法,本小节将介绍如果通过fiddler模拟服务器,为浏览器返回预置的body体,从而实现在本地动态请求的调试。

和静态请求类似,对于动态请求,同样需要配置映射规则,但是返回题是一个txt,里面是动态请求返回的正式内容,例如常见的json结构:

{
retCode: 0,
result:success
}

        未完待续。。。

常见问题;

Q:只能拦截浏览器中走代理的请求  没有使用dialing的请求拦截不到

A:这种是chrome浏览器抓不到的情况;实际上fiddler是可以抓取chrome的请求的;

由于我安装了SwitchOmega代理切换工具(其他类似的工具也会有这种问题),这种插件会屏蔽Fiddler代理,因此就无法监听到请求了。

fiddler原理:Fiffler会自动给浏览器设置一个代理127.0.0.1端口8888,并且记录浏览器的设置的代理,所有的请求先走fidder代理再走浏览器代理;

使用fiddler之后一个完整的请求处理流程为:

1-浏览器发送请求;

2-浏览器将使用fiddler设置的代理将请求发送至本机的8888端口;

3-fiddler监听该端口并解析请求,将请求再次转发到浏览器设置的代理地址上;

4-请求回来之后,fiddler将请求返回结果输出至8888端口,并通过该端口返回给浏览器,因此对于浏览器而言是无法感知的;

因此,解除插件即可,不用删除,禁用该扩展工具即可。

fiddler本地调试的更多相关文章

  1. 如何用 fiddler 代理调试本地手机页面

    最近在做移动端的页面,但是移动端的调试很蛋疼.虽然说 90% 的功能都能用 chrome 下的模拟器来模拟解决,但是剩余的 10% 却只能在真机上调试.比如说一两个像素的误差,比如说只有真机上才能重现 ...

  2. 【视频】使用fiddler开发工具进行新架构页面本地调试

    [视频]使用fiddler开发工具进行新架构页面本地调试,视频没录制好,有些部分比较模糊...

  3. 【前端开发】利用Fiddler抓包工具进行本地调试

    解决什么问题: 解决前端在本地联调页面 || 样式 || 脚本时经常修改服务器代码,浪费太多时间. 避免多人同时修改代码产生冲突问题.可以在本地调完代码之后,再贴到服务器上. 其实这个问题老早就开始想 ...

  4. mapreduce 本地调试需要注意的问题

    1.写好的程序直接在hadoop集群里面执行 2.如果需要在本地调试,需要注释掉mapred-site.xml <configuration> <!-- <property&g ...

  5. 开源分布式实时计算引擎 Iveely Computing 之 本地调试Topology(4)

    当我们写完一个比较复杂的Topology之后,倘若直接提交到服务器上运行,难免会有很多问题,如何进行本地的调试Topology,是我们非常关心的问题.我们依然以WordCount作为代码示例. 首先, ...

  6. OpenCart本地调试环境搭建

    OpenCart简介: 免费开源网络版电子商务系统,是建立在线商务网站首选之一.有众多用户和开发基础,结合其丰富特性与模板插件,可最大化定制在线商店.(也就是用来方便开网店的) 本地调试准备: Fir ...

  7. 在本地调试微信项目(C#)

    之前一人负责微信的项目,那时2014年LZ还没毕业..啥都不懂,为此特别感谢@SZW,没有你的框架,我可能都无从下手 当时做项目最麻烦的就是调试,因为很多页面都要使用 网页授权获取用户信息 在电脑上打 ...

  8. Oracle在本地调试成功读取数据,但是把代码放到服务器读不出数据的解决方法。

    用MVC EF框架开发项目,数据库用的是Oracle,本地调试的时候一切正常,但是把代码编译之后放到服务器就会读不出数据. 原因:本地调试环境与服务器环境不一致. 办法:在服务器上装ODT.NET组件 ...

  9. C#微信公众号——本地调试

    测试微信,因为要与微信服务器进行交互,所以必须要是外网地址,实现本地调试首先需要解决的问题就是外网问题,这个我前面的文章有介绍,这里就不再详细介绍了,网址http://www.cnblogs.com/ ...

随机推荐

  1. How many ways??,题解

    题目: 题意: 找过k条边的路径个数. 分析: 首先注意一下题意,同一个点过两次算两次,做过类似的,过k条边的最短路,只要搞一个矩阵,然后快速幂就好了,这个也一样,维护信息变一下,然后就好了. 如果k ...

  2. flask 源码专题(一):app.run()的背后

    当我们用Flask写好一个app后, 运行app.run()表示监听指定的端口, 对收到的request运行app生成response并返回. 现在分析一下, 运行app.run()后具体发生了什么事 ...

  3. Python网络编程04 /recv工作原理、展示收发问题、粘包现象

    Python网络编程04 /recv工作原理.展示收发问题.粘包现象 目录 Python网络编程04 /recv工作原理.展示收发问题.粘包现象 1. recv工作原理 2. 展示收发问题示例 发多次 ...

  4. JavaScript动画实例:动感小球

    已知圆的坐标方程为: X=R*SIN(θ) Y=R*COS(θ)     (0≤θ≤2π) 将0~2π区间等分48段,即设定间隔dig的值为π/24.θ初始值从0开始,按曲线方程求得坐标值(x,y), ...

  5. As 布局文件太多很乱的问题

    //添加自定义文件整理文件夹的方法,没有之一在build.gradle(Module: app)里加入布局需要放入的路径代码>>>>>> sourceSets { ...

  6. 【JVM之内存与垃圾回收篇】JVM与Java体系结构

    JVM与Java体系结构 前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOMM! 想解决线上JVM GC问题,但却无从下手. 新 ...

  7. 程序员为什么要使用Markdown

    为什么要学习markdown? 一个让你难以拒绝的理由:markdown可以让你养成了记录的习惯. 我自从使用了markdown之后,就喜欢了写文档,记录工作日志,记录周会,记录季度计划,记录学习目标 ...

  8. 亚马逊如何使用二次验证码/虚拟MFA/两步验证/谷歌验证器?

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接  亚马逊如何使用二次验证码/虚拟MFA/两步验证/谷歌验证器? 二次验证码小程序于谷歌身份验证器APP的优势 1.无需下载ap ...

  9. java 如何正确的输出集合或者对象的值

    java 如何正确的输出集合或者对象的值 一般out.println(Object) 和 System.out.println(Object),其中输出的都是Object.toString()方法.重 ...

  10. NIO入门之多路复用选择器Selector

    简介 Selector 是 java.nio.channels 包下的重要组件,阅读本文可以带你了解常用的 API.本文中把 Channel 翻译成信道,按照个人习惯也可以称作是通道.管道. Sele ...