美文网首页工具癖
Fiddler 极速上手

Fiddler 极速上手

作者: SkyRiN | 来源:发表于2017-05-12 18:02 被阅读34次

    Fiddler 简介

    Fiddler 是一个 http协议 调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出” Fiddler 的数据(指 [cookie] (http://baike.baidu.com/item/cookie/1119) 、html、js、css 等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。 —— 百度百科

    你只需要知道它是一个 “调试代理工具” 就 OK 了,Fiddler 的功能相当强大,网上的教程也有一大堆,本文秉承着从零开始快速上手的理念,所以非必要的地方不会讲的太细,文末推荐了一些写的不错的教程以供喜欢研究的同学仔细研究,如果你英文不错的话直达官方文档任何教程都不用看了,包括本篇。

    Fiddler UI

    Fiddler 的界面大概就是下面这个样子

    Fiddler 配置

    下载安装后启动 Fiddler 设置成如下状态,期间需要安装证书 FiddlerRoot.cer。

    step 1 step 2 step 3安装证书 step 4
    • 最后在 Fiddler 命令行中输入 start 并回车,确保其处于 Capturing 状态

    Android 端代理设置

    因为 Fiddler 是 PC 与 服务器之间的代理,而我们需要修改 Android 设备请求的数据包,所以让 PC 作为 Android 设备的代理继而通过 Fiddler 代理 PC 我们就可以在 Fiddler 中抓取到 Android 设备的请求数据了。

    • 保证移动设备与 PC 在同一局域网下
    • 获取 PC 的 IP 地址
    • 设置 Android 设备的 WIFI 代理服务器及端口号(这个端口就是 Fiddler 在一直监听的,默认是 8888)
    Paste_Image.png
    • 移动端可以在浏览器中访问 127.0.0.1:8888 来安装证书。如果不安装证书的话只能抓取 HTTP 请求

    以上步骤没问题的话,随便打开一个网页,应该就能在 Fiddler 中捕获到移动端的请求会话了。

    过滤器 (Filters)

    上面的步骤中,随便打开一个网页,你可能会看见一堆会话,包括一些其他应用的消息推送,状态同步等待后台网络请求也会显示在会话中,这时就需要过滤掉无用的会话,如下设置后就只显示来自 “weatherapi.market.xiaomi.com” 的会话了,多个 Host 使用 “;” 隔开或一行一个。

    Paste_Image.png

    检查器 (Inspectors)

    在检查器中可以预览任意一条会话的详细信息(请求体、响应体等)

    自动响应器 (AutoResponder)

    自动响应器可以模拟一个响应,向符合匹配规则的请求返回自定义内容,匹配规则详细介绍看这里

    简单使用场景

    开发中我们可能会经常遇到这种情况,比如测试登录模块,数据解析调试等场景时,需要多次频繁的请求服务器返回各式各样的数据,可能需要不完整的、有错误的返回结果测试应用的健壮性,需要不同的网络环境来模拟户外使用的场景;如果按照常规方式来测的话可能需要后台给一个测试接口,各种数据后台改一下再请求一次测一下,或者直接把数据放到文件里直接读取,而网络环境更是很难模拟;那么有了 Fiddler ,这种调试就轻松多了,下面是一个简单的修改返回数据示例。

    • 这是 Meizu 系统内置的天气软件
    • 下拉刷新一下数据,可以看到 Fiddler 中捕获到的会话及返回的天气数据
    • 保存返回数据
    • 在自动响应器中添加匹配规则,修改返回数据为刚才我们改过的文件
    • 再次下拉刷新天气信息,就从文本中返回如下数据了

    OK 以上差不多就是 Fiddler 的基础用法了,它还有许多更强大的调试功能和使用场景,喜欢研究的同学可以看看:

    零基础学习抓包改包
    Fiddler自动响应AutoResponder正则匹配
    官方文档
    官方文档
    官方文档

    相关文章

      网友评论

        本文标题:Fiddler 极速上手

        本文链接:https://www.haomeiwen.com/subject/buzwtxtx.html