• 通过抓包软件Charles和Fiddle快速模拟(Mock)数据


    使用Charles实现本地数据mock

    由于在实际开发中,一般进行前后端分离,通过接口来进行数据交互。所以我们使用charles-proxy来进行模拟数据接口。Charles能够抓取浏览器发起的请求,然后做出一些处理和返回。官网下载
    配置参考

    注册账号(不注册的话,30天会过期,每隔一段时间会关闭一次) 账号:https://zhile.io 密码:48891cf209c6d32bf4

    配置接口文件

    在本地创建接口文件返回的json文件,通过charles配置访问地址返回对应的json文件

    设置charles

    菜单Tools -> Map Local. 勾选Enable Map Local,点击Add按钮新增一个接口,选择对应返回的json文件

    Protocol: http
    Host: localhost.charlesproxy.com
    Port: 3000
    Path: /api/todolist // 根据不同的地址返回对应的数据
    Query: // 参数
    

    注意:Host选项如果只写 localhost,会出现浏览器访问时出现404,经过查看发现charles能抓取线上的包,但是不能抓取本地的包,那么把我们想要访问的接口挂到 localhost.charlesproxy.com:3000域名下,就能访问了。官方说明

    修改hosts文件对127.0.0.1 进行映射,host文件在c:\windows\system32\drivers\etc 下。快速进入hosts文件夹的方法。同时按下Win+R组合键,调出运行栏,输入 c:\windows\system32\drivers\etc 确定即可打开对应的文件夹。

    发起请求,会遇到跨域问题

    axios.get('http://localhost.charlesproxy.com:3000/api/todolist')
    .then((res) => {
        console.log(res);
    })
    .catch((error) => {
    	console.log(error);    
    })
    // 在控制台中会提示一下错误:
    // 虽然ajax访问接口能正常的获取到数据,并成功得到202,但是返回结果仍为error,查看以下错误Access to XMLHttpRequest at 'http://localhost.charlesproxy.com:3000/api/todolist' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.,发现出现跨域问题。 
    

    Charles配置解决跨域

    跨域资源共享 CORS 详解( 阮一峰)

    解决方法:使用charles的rewrite修改options请求的response header

    • 点击Tools -> Rewrite
    • 添加rewrite配置
      1. 开启Enable Rewrite

      2. 点击左边add添加rewrite配置

      3. 设置名称,点击第一个模块中的add,添加location,什么不填写点击确定匹配所有

      4. 设置请求头:点击第二个模块中的add,添加Type:add header 和 response status

        修改Header下的四个字段:

        Access-Control-Allow-Origin: *

        Access-Control-Allow-Methods: GET,POST,OPTIONS

        Access-Control-Allow-Headers: Accept,Origin,X-Requested-With,Content-Type,Last-Modified

        Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH

        选择Type为Add Header, 勾选Response,设置Replace中的Name和Value,勾选Replace all。

        选择Type为Response Status,勾选Response,勾选Match whole value

    Charles破解:

    • 从这个网站生成破解后的charles.jar文件

    • 替换本地charles.jar文件即可

      windows: c:\Program Files\Charles\lib\

    Fiddle快速模拟mock

    • 创建访问接口返回的json文件
    • 选中目标信息,点击autoresponde,勾选下面对应的3个复选框,点击Add Rule添加访问路径对应返回的数据。
    • Fiddle下载地址
    // 编辑Rule Editor
    // 设置请求地址
    EXACT:http://localhost:3000/api/getTodoList
    // 对应请求地址输出的数据
    c:\Users\chinatime\Desktop\mock\data.json
    // 点击保存即可
    
  • 相关阅读:
    链表问题(5)-----读取
    链表问题(4)----环形链
    服务器上安装anaconda
    链表问题(3)-----反转
    (1)安装vagrant和virtualbox
    链表问题(2)-----删除
    链表问题(1)----遍历和实现
    Python笔记26----正则表达式匹配
    读书笔记--SQL必知必会04--过滤数据
    Docker
  • 原文地址:https://www.cnblogs.com/yuxi2018/p/11247409.html
Copyright © 2020-2023  润新知