让 iOS/Android 网络API开发更加自由-charles模拟服务器返回数据

原因:在与服务器联调接口之后,所有的API都能正常跑通,但是涉及到具体的业务逻辑时,比如界面遇到不同的数据做出特定的布局操作或弹框提示,再或者只有当数据字段符合特定的值时才能做出更多复杂的逻辑操作。如果依赖于服务器或者数据库,那么需要他们去帮你制造假数据来检测你的代码的正确性,这样是一次两次没问题,但是量大的时候,会影响双方的开发进度。能不能采取解耦的思想让移动端和服务端分隔开,在移动端测试开发阶段,自己根据接口文档制造自己需要的特定的返回数据呢?

解决方案:这时候我们需要自己的代理服务器来实现--使用 Charles 制作代理服务器。

具体需求:当API有所改动时,服务器正在开发相应功能,但是还没有部署到服务器上去,只是在原接口的返回数据中多加了一个字段“id”。现在移动端的业务逻辑写好了,就等数据测试了。

具体操作步骤:

一、首先你需要下载一个 Charles,并且安装起来,具体的使用方法这里不做赘述。可以移步这里学习。
二、抓取你需要修改的接口

抓取一个接口.png

大家可以看到,这个接口返回的是一个json串。这个请求是手机发起的,我们看到的只是软件抓到的包数据。那么如何加入新的“id”字段呢?

三、使用 Charles 的 local map 功能

保存response数据.png

保存 response 数据到本地电脑上去

选择localmap.png

选择local map

添加需要map的接口.png

点击 Add 添加 map 规则

map规则.png

这些地方填入你的API信息,以及刚才保存的 response 文件地址

点击保存map.png

点击ok保存map规则。之后,只要是从你手机通过 Charles 代理发出的这个接口的请求,都会被重定向到你电脑上本地的 response 文件中。

现在,我们在通过手机调用一下之前的接口,结果呢?结果是还不如原来的,呵呵哒。。。

之前我们还能获取到 title、content和type三个字段以及他们的值,现在直接返回的数据为nil。

找了半天原因,最终通过对比发现了一个问题,两种请求的响应头不一样

从服务器取到的数据.png
本地map的数据.png

所以怎么修改 response 的 content type 类型为 json/application 呢?

三、使用 Rewrite 替换特定接口的响应头参数

打开rewrite.png

打开 Rewrite

rewrite配置页面.png

Rewrite 配置页面简介

1、首先创建一个规则集

添加接口集合和适用范围.png

添加 Rewrite 替换规则

书写rewrite替换规则.png

这里相当于是在响应回来之前,通过字段的匹配,替换掉原有的响应头中的Content-Type 类型为 json/application

所有的对话框都点击 ok 或者 apply 确定保存

现在我们开始测试啦,继续调用该接口。

四、根据需求修改数据

数据修改前刚才看过了,只有 title/content/type 三个字段

{
"title":"标题",
"content":"内容正文",
"type":"类型"
}

而现在需要添加 “id” 字段。所以,用 vim 或者其他文本编辑器打开刚才保存的 response 文件,将他修改成这样

{
"id":"00000001",
"title":"标题",
"content":"内容正文",
"type":"类型"
}

修改后记得保存一下,现在重新开始请求该接口,查看log日志。

{
"id":"00000001",
"title":"标题",
"content":"内容正文",
"type":"类型"
}

完美!下面开始愉快的测试我们自己的代码吧~


总结:

本文的目的主要是为了提高客户端和服务器各自独立开发的能力,像制造特定的假数据这种很简单的需求,如果不借助 Charles 代理去自己制造,恐怕你需要自己搭建一个服务器去各种恶补服务器的知识了。其实我们的原理十分简单,就是通过代理软件对网络请求进行拦截,并且返回我们想要的数据。这样做的好处就是,大大加强了客户端的自主开发能力,不需要依赖服务器对我们的特定逻辑进行开发,缩短开发周期。节约大家的时间,试想如果我们自己制造的数据如果在app中能跑通,即便服务器开发出来,如果出现跑不通的错误,那问题最有可能出现在服务器端,当然还要看具体的反馈信息。Charles 还有很多强大的功能,有待大家慢慢探索,祝大家玩得开心~

原文博客地址:http://yangchao0033.github.io/blog/2016/03/05/develop-moblie-api-with-charles-and-server-data-with-charles/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,836评论 6 13
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,617评论 0 15
  • 每天一篇简书打卡,不知觉也坚持了38天。回想一路走来,即使中间曾经休假,曾经为写作打卡熬到凌晨,终究也逼了自己一把...
    057Bonnie阅读 198评论 2 0
  • 昨晚跑群约跑,今早五点半集合。看到公告,内心蠢蠢欲动。脑袋里两个小人在打架,“去吧!难得的机会,这个星期就跑了...
    寒月零星阅读 339评论 0 0