昨天大家是不是都被微信朋友圈的毛玻璃图片刷屏了?这是微信为新春红包准备的一个新的功能,昨天内测了一段时间,传播效应很大,这告诉我们一个道理:没钱,以后连朋友圈都看不了。这功能刚推出大家都在忙着发红包照片的时候,身为程序员天生的敏感,稍微研究了下如何不花钱就能查看,并且第一时间发布在我朋友圈里,今天就给大家分享下,这个技能可谓是Android开发必备哦。
先来回答大家的一个困惑,就是微信这功能怎么做出来的,好神奇啊,这功能说上线就上线,说下线就下线,不少人猜测到底是用了什么神奇的技术实现的,用了传说中的插件化?
我来给大家解惑下,这功能并没有运用什么神奇的技术,这个功能在上一版本微信就已经做好了,随版本发布内置在客户端里,不信的话上上版本的微信就是没有这个功能的。只需要通过服务端一个配置就可以灵活显示、隐藏入口,插件化想要实现整个功能还是很困难的。
回到正题,这个功能刚上线之后我发现预览的时候有个圆圈区域可以看到清晰图片,而且每次都随机显示不同地方,所以我初步判断这图片肯定事先就下载或者缓存到本地了,那这就好办了,俗话说放在客户端的东西总能通过一些手段拿到,因为朋友圈就是正常的网络请求么,所以第一时间就想到了抓包,把所有的http请求拿到就理所当然的能获取到图片了。
所以说白了这也不是什么新鲜技能,会抓包就ok了,对于我们客户端开发来说我们经常要跟后端进行api接口联调,抓包可谓是必备技能,那么如何抓包呢?今天的主题就给大家推荐几个最好用的抓包工具。
1、Fiddler
这个号称windows上最好用的抓包工具。如果你是windows平台,那么这个工具强烈推荐给你们。这里有很详细的教程:
https://www.jb51.net/softjc/107063.html
2、Charles
毫无疑问Mac平台最好用的抓包工具,官方是收费的,不过你可以在网上找到破解版。详细的教程在这里:
http://blog.devtang.com/blog/2015/11/14/charles-introduction/
3、Logcat
前两个抓包工具都可以抓系统级别的请求,原理也很简单就是通过设置代理,使用的时候稍微有些麻烦,每次都要设置代理。前段时间我自己在调试网络问题,使用很频繁,每次连接就很麻烦,所以干脆就在app上优化了我们的Log显示,从此直接在AS的Logcat就可以很详细的看到请求的url、params、header、response等,大大提高了我们团队调试网络的效率,上个图你们感受下:
我这个就只限在app内部调试网络使用,点赞转发量多的话回头告诉下你们实现原理。
当然网络抓包方法还有其他方式,如tcpdump、wireshark等,但都不如上述推荐的两款使用简单。有兴趣的可以研究下其他抓包工具。
最后,告诉你们一个不好的消息,红包图片功能微信已经发现漏洞,目前已经对数据做了加密,所以可能暂时抓包看不到毛玻璃图片了,但是抓包这项技能堪称每个app开发者必备,你一定要掌握。
很多人问我朋友圈为什么不发红包照片啊?我眼含热泪回答你们:我他妈花了一小时拍了一张精美裸照,谁知道这功能竟然下线了...