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

news/2024/11/19 3:59:32/

简介

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

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

  • 直接在代码中解析本地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
      
  • 使用其他服务器来实现

    • 请百度之

http://www.ppmy.cn/news/1443695.html

相关文章

IT大陆之:指定用户登入docker

这天,S老交给小k一个特殊的任务:以“nav”这个神秘身份,深入“my_dk”国度,探索其中的奥秘。小k心怀激动与忐忑,站在控制台前,深吸一口气,然后缓缓念出那串充满魔力的咒语:“sudo do…

12.7.1 实验7:实施路由器密码恢复

1、实验目的 通过本实验可以掌握; 路由器密码恢复原理。路由器密码恢复步骤。修改配置寄存器值的方法。 2、实验步骤 路由器密码恢复的过程如下所述。 (1)路由器冷启动。 1分钟内按【CtrlBreak】键进入ROM监控(ROM Monitor ) rommon模式…

Pixelmator Pro for Mac:简洁而强大的图像编辑软件

Pixelmator Pro for Mac是一款专为Mac用户设计的图像编辑软件,它集简洁的操作界面与强大的功能于一身,为用户提供了卓越的图像编辑体验。 Pixelmator Pro for Mac v3.5.9中文激活版下载 该软件支持多种文件格式,包括常见的JPEG、PNG、TIFF等&…

使用Python,结合Flask框架,创建一个可以处理交易、挖矿新区块、验证区块链有效性,并能在网络节点间同步的区块链网络。(持续更新)

目录 前言 二、代码注释 1.添加新交易到区块链 2.连接新节点 3、替换区块链为最长链 总结 前言 本篇文章将从一个实践者的角度出发,通过构建一个简单的区块链系统,揭开区块链技术的神秘面纱。我们将使用Python语言,结合Flask框架&…

Linux系统——Nginx常见面试题

目录 一、Nginx使用场景 二、Nginx的发展历史 三、Nginx没出现之前都存在过什么问题 四、Nginx的优点 五、正向代理和反向代理分别是什么 六、Nginx限流问题 七、Nginx动静分离 八、什么是负载均衡 九、Nginx负载均衡的策略有哪些 十、Nginx多进程模型 十一、为什么…

金属冶炼及压延加工制造数字孪生可视化平台,推进行业数字化转型

金属冶炼及压延加工制造数字孪生可视化平台,推进行业数字化转型。随着科技的不断进步和工业的快速发展,金属冶炼及压延加工行业正面临着前所未有的挑战和机遇,数字化转型成为了行业发展的必然趋势。在这个过程中,数字孪生可视化平…

JavaScript基础——3.分支、循环语句

1. if-else分支语句 if(条件表达式){ // 当表达式成立时要执行的代码 }else{ // 当表达式不成立时要执行的代码 } // <html lang="en"> <head> <meta charSet="UTF-8"> <title>JavaScript</title> </head>…

9种单片机常用的软件架构

长文预警&#xff0c;加代码5000多字&#xff0c;写了4个多小时&#xff0c;盘软件架构&#xff0c;这篇文章就够了! 可能很多工程师&#xff0c;工作了很多年&#xff0c;都不会有软件架构的概念。 因为我在做研发工程师的第6年&#xff0c;才开始意识到这个东西&#xff0c;在…