如何在iOS開發中更好的做假數據?

轉載自其它地方,自己的筆記中也有,但是文件太多不好找,主要是想記錄一下用Charles網絡代理實現假數據的方式,所以只截取了這一塊,想看全文的話,推薦到原地址查看:

https://zhuanlan.zhihu.com/p/27638942

注:Charles配置:
1. 打開電腦的系統偏好設置-》網絡-》選中現在連着的網,查到自己電腦現在WIFI裏的IP地址
2. 保持自己的iphone連接同一個WIFI
3. 手機進入到了這個無線局域網的高級設置頁面。進去之後拉到最下方,找到HTTP代理字樣。然後選中手動代理,並在服務器中填自己電腦查到的ip地址,然後把端口設置爲8888,最後點擊左上角返回。返回值後系統會自動設置代理重新連接。

網絡代理

第二種就是利用現有的網絡代理軟件,直接攔截對應的網絡請求,然後返回本地寫好的JSON數據。我最終採用的這種方案(因爲我嫌配置服務器麻煩)。將APP中所有的網絡請求都代理給網絡代理,然後指定特定的網絡請求返回本地JSON數據。這種方案的好處不言而喻,

真正的不污染源碼
源碼中任何代碼都不用動,真正做到了乾淨綠色無污染。
攔截起來很方便
許多網絡代理軟件,都自帶攔截甚至改寫網絡請求的功能,所以啓動攔截功能很方便。
方便調試
網絡代理一般都有改變一個網絡請求狀態的功能,可以輕鬆實現返回網絡錯誤、網絡超時和延遲網絡請求等不同的網絡請求狀態的功能,非常方便。
我常用的網絡代理就是Charles,相信大家都有耳聞。Charles有個maplocal的功能(在工具菜單下),如圖:

Charles=>Tools=>Map Local

mapLocal的設置也很簡單,在Location一欄填上所要攔截的網絡請求的host、path或者完整的URL,然後在LocalPath一欄選擇對應的本地JSON文件即可,記得勾選啓動。

這裏寫圖片描述

這樣簡單的設置後,所指定的網絡請求都會返回本地對應的JSON文件數據。然後你將發現這種假數據之完美,簡直讓人窒息。

編譯後,如果想改變一個數據,看看對應的UI,直接去改變本地JSON文件,然後下來刷新一下,你會發現顯示的數據就是剛剛改動的數據,簡直要感動哭了。

但事實上這種方式還是有一個小小的缺點,即Charles與Shadowsocks不能同時開着,因爲Charles不支持父代理。搞編程開發,爲方便查閱資料,翻牆軟件會一隻開着,但這樣Charles就不能開着,想用的話,又要先退出Shadowsocks,再打開Charles,這讓我很頭疼。最後只能在真正寫完所有的邏輯和UI後,關閉Shadowsocks,打開Charles,集中調試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章