目录
说明
在做博客园UWP版的时候其实就有做知乎日报的打算了,前段时间一直出差,在酒店里用Fiddler简单的分析了一下Android官方版本使用到的API,刚开始以为很复杂,后来发现其实很简单。windows商店里知乎日报的应用有好几个,但是网上基本没有什么开源的,这篇文章将介绍一下知乎日报用到的API(Android版)以及目前已经完成的部分界面(为了测试效果,我还特意买了一部lumia 535,399元还送一部移动电源,当天就升级到了Windows 10 Mobile)。等所有的功能都做完了之后我再将源码传上来。
注:后来上网查了一下,发现其实早有人分析了知乎日报的API。
使用Fiddler分析Android版API
首先要准备的工具:
- android手机+知乎日报APP;
- Fiddler(大名鼎鼎Telerik出的,Telerik);
- 局域网。
原理很简单,打开Fiddler,将它设置成为一个代理,然后将同一局域网中的Android手机代理设置为Fiddler所在的电脑。
之后Android手机所有的HTTP请求都会先经过代理(Fiddler所在的电脑),Fiddler当然也能捕获到请求的各种数据。(注意如果捕获的回话过多,请通过Fiddler右侧的Filter进行过滤)。
如果对Fiddler不熟悉的童鞋可以看这里:http://kb.cnblogs.com/page/130367/
之后,打开Android手机中的知乎日报APP,你就会看到所有的HTTP请求:
如上图,注意一定要使用filter进行过滤(图中右侧)。可以看到,知乎日报APP中各种操作都能看到对应的API,大概有以下:
- Android APP版本更新检查;
- APP启动图片
- 日报主题列表抓取
- 首页最近文章
- 首页分页文章(按天)
- 主题页面文章
- 主题页面分页文章
- 文章正文
- 文章额外信息(评论数、点赞数等等)
- 获取短评论
- 分页获取短评论
- 获取长评论
- 分页获取长评论
(有关登录的API本人没有分析)
每个API都是通过Get方式请求的,返回的大部分都是Json格式的数据(有一部分是HTML)。下图是我整理出来的一些API:
等源码传上来之后,大家可以下下去看看。每个API返回的格式如下(以抓取主题日报列表为例):
返回的JSON数据很好处理,使用Windows.Data.Json命名空间的类型就可以全部解决。这是获取API部分的准备。
以上。
部分效果图
功能还没有做完,先看几张图:
关于源码
等做完之后上传全部源码(这次项目结构稍微设计了一下:))。
12年的时候我买了一部Lumia 800(WP7的系统),发现系统很差劲,后来没怎么用了,花了我3000块。之后Wp8/8.1一直没怎么关注,现在用了一段时间的Win 10 Mobile,发现进步相当大,应用商店里的一些大厂开发的APP体验也很好吧,要是开发者给点力,还是可以做出好的APP的。就我目前个人认为,认真做出来的APP还是可以让一些本已适应了Android、IOS的人接受的,昨晚把我做的半成品给我媳妇用,她也没感觉出来跟IOS哪里差了。
开源有益,多谢点赞。