如何在iOS开发中更好的做假数据?

来源:互联网 发布:单片机的蓝牙模块 编辑:程序博客网 时间:2024/05/29 11:04

转载自其它地方,自己的笔记中也有,但是文件太多不好找,主要是想记录一下用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,集中调试。

阅读全文
0 0
原创粉丝点击