讓 iOS/Android 網(wǎng)絡(luò)API開發(fā)更加自由-charles模擬服務(wù)器返回?cái)?shù)據(jù)

原因:在與服務(wù)器聯(lián)調(diào)接口之后搀突,所有的API都能正常跑通萎攒,但是涉及到具體的業(yè)務(wù)邏輯時(shí)让歼,比如界面遇到不同的數(shù)據(jù)做出特定的布局操作或彈框提示饲帅,再或者只有當(dāng)數(shù)據(jù)字段符合特定的值時(shí)才能做出更多復(fù)雜的邏輯操作复凳。如果依賴于服務(wù)器或者數(shù)據(jù)庫,那么需要他們?nèi)湍阒圃旒贁?shù)據(jù)來檢測(cè)你的代碼的正確性灶泵,這樣是一次兩次沒問題育八,但是量大的時(shí)候,會(huì)影響雙方的開發(fā)進(jìn)度赦邻。能不能采取解耦的思想讓移動(dòng)端和服務(wù)端分隔開髓棋,在移動(dòng)端測(cè)試開發(fā)階段,自己根據(jù)接口文檔制造自己需要的特定的返回?cái)?shù)據(jù)呢?

解決方案:這時(shí)候我們需要自己的代理服務(wù)器來實(shí)現(xiàn)--使用 Charles 制作代理服務(wù)器按声。

具體需求:當(dāng)API有所改動(dòng)時(shí)膳犹,服務(wù)器正在開發(fā)相應(yīng)功能,但是還沒有部署到服務(wù)器上去签则,只是在原接口的返回?cái)?shù)據(jù)中多加了一個(gè)字段“id”⌒氪玻現(xiàn)在移動(dòng)端的業(yè)務(wù)邏輯寫好了,就等數(shù)據(jù)測(cè)試了渐裂。

具體操作步驟:

一豺旬、首先你需要下載一個(gè) Charles,并且安裝起來镐躲,具體的使用方法這里不做贅述霎肯。可以移步這里學(xué)習(xí)。
二塞茅、抓取你需要修改的接口

抓取一個(gè)接口.png

大家可以看到,這個(gè)接口返回的是一個(gè)json串罩锐。這個(gè)請(qǐng)求是手機(jī)發(fā)起的猜丹,我們看到的只是軟件抓到的包數(shù)據(jù)。那么如何加入新的“id”字段呢央渣?

三计盒、使用 Charles 的 local map 功能

保存response數(shù)據(jù).png

保存 response 數(shù)據(jù)到本地電腦上去

選擇localmap.png

選擇local map

添加需要map的接口.png

點(diǎn)擊 Add 添加 map 規(guī)則

map規(guī)則.png

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

點(diǎn)擊保存map.png

點(diǎn)擊ok保存map規(guī)則芽丹。之后北启,只要是從你手機(jī)通過 Charles 代理發(fā)出的這個(gè)接口的請(qǐng)求,都會(huì)被重定向到你電腦上本地的 response 文件中拔第。

現(xiàn)在咕村,我們?cè)谕ㄟ^手機(jī)調(diào)用一下之前的接口,結(jié)果呢蚊俺?結(jié)果是還不如原來的懈涛,呵呵噠。泳猬。批钠。

之前我們還能獲取到 title、content和type三個(gè)字段以及他們的值得封,現(xiàn)在直接返回的數(shù)據(jù)為nil埋心。

找了半天原因,最終通過對(duì)比發(fā)現(xiàn)了一個(gè)問題忙上,兩種請(qǐng)求的響應(yīng)頭不一樣

從服務(wù)器取到的數(shù)據(jù).png
本地map的數(shù)據(jù).png

所以怎么修改 response 的 content type 類型為 json/application 呢踩窖?

三、使用 Rewrite 替換特定接口的響應(yīng)頭參數(shù)

打開rewrite.png

打開 Rewrite

rewrite配置頁面.png

Rewrite 配置頁面簡(jiǎn)介

1晨横、首先創(chuàng)建一個(gè)規(guī)則集

添加接口集合和適用范圍.png

添加 Rewrite 替換規(guī)則

書寫rewrite替換規(guī)則.png

這里相當(dāng)于是在響應(yīng)回來之前洋腮,通過字段的匹配箫柳,替換掉原有的響應(yīng)頭中的Content-Type 類型為 json/application

所有的對(duì)話框都點(diǎn)擊 ok 或者 apply 確定保存

現(xiàn)在我們開始測(cè)試?yán)玻^續(xù)調(diào)用該接口啥供。

四悯恍、根據(jù)需求修改數(shù)據(jù)

數(shù)據(jù)修改前剛才看過了,只有 title/content/type 三個(gè)字段

{
"title":"標(biāo)題",
"content":"內(nèi)容正文",
"type":"類型"
}

而現(xiàn)在需要添加 “id” 字段伙狐。所以涮毫,用 vim 或者其他文本編輯器打開剛才保存的 response 文件,將他修改成這樣

{
"id":"00000001",
"title":"標(biāo)題",
"content":"內(nèi)容正文",
"type":"類型"
}

修改后記得保存一下贷屎,現(xiàn)在重新開始請(qǐng)求該接口罢防,查看log日志。

{
"id":"00000001",
"title":"標(biāo)題",
"content":"內(nèi)容正文",
"type":"類型"
}

完美唉侄!下面開始愉快的測(cè)試我們自己的代碼吧~


總結(jié):

本文的目的主要是為了提高客戶端和服務(wù)器各自獨(dú)立開發(fā)的能力咒吐,像制造特定的假數(shù)據(jù)這種很簡(jiǎn)單的需求,如果不借助 Charles 代理去自己制造属划,恐怕你需要自己搭建一個(gè)服務(wù)器去各種惡補(bǔ)服務(wù)器的知識(shí)了恬叹。其實(shí)我們的原理十分簡(jiǎn)單,就是通過代理軟件對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行攔截同眯,并且返回我們想要的數(shù)據(jù)绽昼。這樣做的好處就是,大大加強(qiáng)了客戶端的自主開發(fā)能力须蜗,不需要依賴服務(wù)器對(duì)我們的特定邏輯進(jìn)行開發(fā)硅确,縮短開發(fā)周期。節(jié)約大家的時(shí)間明肮,試想如果我們自己制造的數(shù)據(jù)如果在app中能跑通疏魏,即便服務(wù)器開發(fā)出來,如果出現(xiàn)跑不通的錯(cuò)誤晤愧,那問題最有可能出現(xiàn)在服務(wù)器端大莫,當(dāng)然還要看具體的反饋信息。Charles 還有很多強(qiáng)大的功能官份,有待大家慢慢探索只厘,祝大家玩得開心~

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舅巷,隨后出現(xiàn)的幾起案子羔味,更是在濱河造成了極大的恐慌,老刑警劉巖钠右,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赋元,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搁凸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門媚值,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人护糖,你說我怎么就攤上這事褥芒。” “怎么了嫡良?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵锰扶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我寝受,道長(zhǎng)坷牛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任很澄,我火速辦了婚禮京闰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痴怨。我一直安慰自己忙干,他們只是感情好器予,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布浪藻。 她就那樣靜靜地躺著,像睡著了一般乾翔。 火紅的嫁衣襯著肌膚如雪爱葵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天反浓,我揣著相機(jī)與錄音萌丈,去河邊找鬼。 笑死雷则,一個(gè)胖子當(dāng)著我的面吹牛辆雾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播月劈,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼度迂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了猜揪?” 一聲冷哼從身側(cè)響起惭墓,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎而姐,沒想到半個(gè)月后腊凶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年钧萍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡划煮,死狀恐怖送丰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弛秋,我是刑警寧澤器躏,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站蟹略,受9級(jí)特大地震影響登失,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挖炬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一揽浙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧意敛,春花似錦馅巷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撩独,卻和暖如春敞曹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背综膀。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工澳迫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剧劝。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓橄登,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親讥此。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拢锹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)暂论,斷路器面褐,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,926評(píng)論 6 13
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,700評(píng)論 0 15
  • 每天一篇簡(jiǎn)書打卡,不知覺也堅(jiān)持了38天取胎≌箍蓿回想一路走來湃窍,即使中間曾經(jīng)休假,曾經(jīng)為寫作打卡熬到凌晨匪傍,終究也逼了自己一把...
    057Bonnie閱讀 202評(píng)論 2 0
  • 昨晚跑群約跑您市,今早五點(diǎn)半集合∫酆猓看到公告茵休,內(nèi)心蠢蠢欲動(dòng)。腦袋里兩個(gè)小人在打架手蝎,“去吧榕莺!難得的機(jī)會(huì),這個(gè)星期就跑了...
    寒月零星閱讀 341評(píng)論 0 0