目錄
在做博客園UWP版的時候其實就有做知乎日報的打算了,前段時間一直出差,在酒店里用Fiddler簡單的分析了一下Android官方版本使用到的API,剛開始以為很復雜,后來發現其實很簡單。windows商店里知乎日報的應用有好幾個,但是網上基本沒有什么開源的,這篇文章將介紹一下知乎日報用到的API(Android版)以及目前已經完成的部分界面(為了測試效果,我還特意買了一部lumia 535,399元還送一部移動電源,當天就升級到了Windows 10 Mobile)。等所有的功能都做完了之后我再將源碼傳上來。
注:后來上網查了一下,發現其實早有人分析了知乎日報的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哪里差了。
開源有益,多謝點贊。