美文网首页
使用Charles Mock网络请求到本地文件

使用Charles Mock网络请求到本地文件

作者: 多来猫 | 来源:发表于2018-05-30 13:10 被阅读0次

    原创文章,转载请注明出处。

    在做开发的时候app和api定义好接口文档后,都是同步进行开发的。app端需要api的数据该怎么办呢,这就牵涉到一个名词叫做Mock。他根据我们的网络请求生成模拟数据供app端调试。
    我这里使用了Charles的Map功能来Mock网络请求,Charles的Map功能分为Map RemontMap Local,从字面意思我们可以知道,Map Remont可以将请求Map到另一个远程地址,Map Local可以将请求Map到一个本地文件。这里我们主要说怎么Map到本地文件,我们以json格式作为网络请求数据格式为例来说明。

    准备Json数据

    根据api文档我们准备好json数据,因为这个json是手写的,可能存在各种错误。这时候我们需要校验json字符串,我是使用BeJson来进行校验的,界面如下:

    BeJson
    把Json字符串复制到输入框中,点左上角的格式化Json数据按钮,可以检查Json字符串,检查通过后,点左下角的保存按钮,将Json保存到本地文件。

    Map网络请求到本地文件

    • 打开Charles,点击Tools-Map Local...,弹出这个界面
      Map Local
      选中Enable Map Local复选框,点击Add按钮添加一条Mapping
      Add Mapping
      Protocol分为http和https,我们选择Protocol为http;Host内容我们使用www.baidu.com;Port我们使用默认的80端口;Path我们使用/mock;Query我们不做设置(这里可以根据Query来Map到不同的文件,请自行体验);Local path我们选择了本地PaySuccessOrder2.json文件,点击Ok完成设置。这里有一个小技巧就是可以将整个请求链接http://www.baidu.com/mock复制到Host输入框里,Charles就自动给我们设置好Protocol、Host、Port、Path和Query了。

    使用Charles代理

    打开手机的WIFI,保证手机与PC在同一个无线局域网内,设置手机代理地址为PC的IP地址,端口填8888。如果是使用Simulator来做调试,需要在打开Simulator之前打开Charles,并勾选Proxy-macOS Proxy。
    更多Charles的代理设置请参考其他文章(例如证书等等,这里我们不展开说明了)。

    享受Map Local的快感

    恭喜你,现在可以享受Map Local的快感了,使用Safari访问http://www.baidu.com/mock返回的数据是不是已经变成你设置的json了,在代码里也可以直接访问这个地址。

    相关文章

      网友评论

          本文标题:使用Charles Mock网络请求到本地文件

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