美文网首页iOS-开发菜鸟->大神开发
iOS 模拟请求 (本地数据调试)

iOS 模拟请求 (本地数据调试)

作者: e5311f1a36e5 | 来源:发表于2017-10-23 17:48 被阅读30次

简介

  • 在iOS 的日常开发中经常会遇到一下情况:APP代码已编写完成,但后台的接口还无法使用,这时 APP开发就可能陷入停滞。此时iOS 模拟请求就派上用场了,使用模拟请求来调试代码,如果调试都通过了,等后台接口可用时,基本只需调通即可完成几乎所有APP开发工作,这样APP开发人员的开发不会浪费时间,开发节奏和质量都得到保证
  • 本文章使用青花瓷(charles)为读者介绍模拟调试的正确姿势,如果没有安装,请百度之
  • 参考文章

模拟请求的几种方式及优缺点

  • 直接在代码中解析本地json文件模拟请求:该方式优点是实现简单,缺点是污染代码,并且无法修改请求内容
  • 使用青花瓷的Map local功能模拟请求:该方式优点是配合青花瓷使用时非常简单,并且不会污染代码,缺点是只能请求文件,不能对请求本身做修改,只能修改返回的文件
  • 使用青花瓷的Map remote功能模拟请求:该方式优点是配合青花瓷使用也很简单,并且不会污染代码,而且可以修改请求内容和请求返回的文件,是最完整的模拟调试方式,缺点是相对于上面两种方式使用稍微复杂一点

模拟请求详细介绍

  • 直接在代码中解析本地json文件模拟请求

  1. 这里最重要的是下面的代码,通过下面的代码就可以获得正确的json数据,然后可以使用json转model的方式获得model,这里读者可能会对路径产生疑问,下面有一个示例可以参考
  • 路径示例: /Users/SteveJobs/Desktop/order.json
+ (NSDictionary *)getTestDataWithFilePath:(NSString *)filePath {
    NSData *data = [NSData dataWithContentsOfFile:filePath];
    if (!data) {
        data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filePath ofType:nil]];
    }
    if (data.length == 0) {
        NSLog(@"ERROR: 文件读取为空!路径或文件有问题!");
        return nil;
    }
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
    return dic;
} 
  • 使用青花瓷的Map local功能模拟请求

  1. 首先准备好一个本地的json文件,类似👇
json文件示例
  1. 然后打开青花瓷按照图中箭头选择对应的选项:
打开Map Local
  1. 按照下面的介绍进行相关设置:
  • Enable Map Local:打开Map Local功能
  • Add:增加一个接口转发
  • Protocol:选择请求协议类型(http或者https)
  • Host:host地址
  • Port:端口号
  • Path:除host部分的具体URL
  • Query:需要匹配类似路径的可以使用特殊字符来匹配(比如*等,这个类似正则)
  • Local path:本地json文件路径,可以直接选择
  • OK: 👌你现在可以使用Map Local进行假数据测试了
设置Map Local
  1. 关闭打开的快捷方式
关闭打开的快捷方式
  • 使用青花瓷的Map remote功能模拟请求

  1. 该功能与Map Local的区别:Map Local是将请求修改成直接返回一个json文件,Map remote是转发请求变成另一个请求

  2. 同样第一步是将json文件放到转发后的请求请求到的位置,这个下面有介绍(第6步),可以先略过这一步

  3. 下面的设置与Map remote的类似,首先是打开Map remote功能

设置Map remote
  1. 设置Map remote:
  • Enable Map Remote:打开Map remote
  • Add:增加一个转发
  • 填写Map From(请求地址信息)
    • 选择Map From的Protocal
    • 填写Map From的Host
    • 填写Map From的Port
    • 填写Map From的Path
    • 填写Map From的Query
  • 根据Map From填写Map To(转发地址信息)
  • OK:👌即可使用了
打开Map remote
  1. 关闭打开的快捷方式
关闭打开的快捷方式
  1. 转发请求的地址,目前有两种方案:
  • 使用Mac自带的apache服务器来实现转发请求

    • Mac自带Apache服务器的地址:http://localhost/
    • Mac自带的Apache服务器地址指向的文件夹(json文件存放的位置):/Library/WebServer/Documents
    • Mac自带的Apache服务器使用的几个命令
      开启:$ sudo /usr/sbin/apachectl start
      重启:$ sudo /usr/sbin/apachectl restart 
      关闭:$ sudo /usr/sbin/apachectl stop
      
  • 使用其他服务器来实现

    • 请百度之

相关文章

  • iOS 模拟请求 (本地数据调试)

    简介 在iOS 的日常开发中经常会遇到一下情况:APP代码已编写完成,但后台的接口还无法使用,这时 APP开发就可...

  • Mac电脑配置Apache服务器

    在iOS开发中,我们经常要向网络请求回来的数据进行调试。其实我们Mac电脑自带了Apache服务器。我们可以模拟服...

  • 2018-12-06 mock.js的使用

    目的 mock.js能够拦截Ajax请求,生成模拟数据进行接口调试,模拟了前后端调试的环境,使得前端开发能够独立于...

  • iOS开发之如何模拟数据(二)

    简述 关于iOS客户端在模拟数据的时候如何避免污染代码,之前已经写过如何通过charles代理拦截请求,返回本地构...

  • 【React Native 极速指南】开发环境

    这篇文章你将会学习到: iOS运行环境模拟器调试真机调试 Android运行环境模拟器调试真机调试 iOS 运行环...

  • ionic常见命令

    浏览器运行本地服务: 添加开发平台 添加插件: Android手机调试: 在ios模拟器运行 //以iPhone6...

  • 移动端适配(实践1)

    1.为了使页面调试更真实,启动Xcode模拟ios; 1.模拟ios,终端输入xcrun instruments ...

  • ptrace反调试

    一、iOS调试 iOS调试里面非常常见的就是LLDB调试,LLDB是Xcode自带的调试工具,既可以本地调试Mac...

  • Node.js 爬虫流程分析及使用到的库

    什么是爬虫 通过模拟浏览器的请求,服务器就会根据我们的请求返回我们想要的数据,将数据解析出来,保存到本地文件或数据...

  • iOS本地数据持久化

    iOS本地数据持久化 iOS本地数据持久化

网友评论

    本文标题:iOS 模拟请求 (本地数据调试)

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