怎么偷明星的红包?
谢邀 刚做完一个和明星抢红包的安卓软件,已经交付开发,现在可以拿到源码。 首先说原理吧 我们知道微信发微信红包的时候,其实是先把钱先转到腾讯的服务器上,然后由服务器推送给好友,在手机端显示打开红包的动作。 所以如果能在网络延迟的间隙,抢先一步抢到腾讯服务器上的那些尚未推送到手机端的“待发放红包”,岂不就是直接抢到了刚刚发送过去的红包吗! 只要能够抢到这些还没有推送的红包,那就必然可以抢得手气最佳了嘛! 这就是整个程序的核心思想啦~ 接下来简单说说实现过程吧 我用的是python写的,所以用的工具也都是python的,需要android sdk和python的环境配置我就不写了,有问题可以评论或者私信我,我会补充。
代码比较简单,主要涉及几个类,一个是wechat类的,用来模拟用户行为(发送消息、查看钱包等等)并触发红包;另一个就是Hunter类,这个主要就是围绕网络请求来做的,因为要抢在别人的前面,所以需要不断请求来刷新状态。 最后用java写个服务端来接收信息并转发到微信。
这里就要提到一个东西,就是网络请求的队列,因为每一个浏览器或者其他代理都可能不一样,所以为了应对这种不确定性,我就采用了单线程轮询的方式,也就是每一个请求都是顺序执行的,这样就能保证能抢在别人的前头;但是实际中遇到的情况是如果这个网页加载很慢的话,会导致后面的请求执行不到,所以我加入了等待时间以及超时设置,这样就能保证在正常情况下,这个软件能运行。
因为是要抢红包,而且需要不停地在网络间徘徊,所以用了协程的思路,实现了异步。 其实这个软件的核心逻辑就是这样,实现起来并不是很难,难的是如何保证在正常的情况下抢到红包,因为网络环境确实很难把握。