目录

说明

在做博客园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哪里差了。

开源有益,多谢点赞。

【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析的更多相关文章

  1. 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。

    目录 说明 功能 截图+视频 关于源码和声明 说明 陆陆续续大概花了一个月的时间,APP算是基本完成了.12月份一直在外出差,在出差期间进行了两次功能完善,然后断断续续修补了一些bug,到目前为止,我 ...

  2. 【完全开源】知乎日报UWP版:增加Live磁贴、Badge、以及Toast通知

    目录 说明 实现方法 APP生命期 后台任务 说明 之前网上有人建议增加磁贴(tile).徽章(badge)功能.利用周末的时间,将这两个功能添加上去了.如果将磁贴固定到开始屏幕,磁贴就会循环播放首页 ...

  3. 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释

    目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...

  4. 【开源】知乎日报UWP 更新

    说明 大概十天之前我更新了一次APP,后来又仔细看了一下Store里的评论,发现还有几个地方没有改过来.于是前天晚上抽时间改了一下,顺便完善了一下UI体验. 没有看前面文章的童鞋可以看一下下面的链接: ...

  5. 知乎日报win10版 - 天天读报【开源】

    业余时间写的一个知乎日报win10版客户端,支持收藏,评论,点赞等. 商店地址:https://www.microsoft.com/zh-cn/store/apps/%E5%A4%A9%E5%A4%A ...

  6. 开源 SHOPNC B2B2C结算营运版 wap IM客服 API 手机app 短信通知

    源码我们这里简单的测试了下,具体的请自行下载测试.这套源码官方售价很高,在这里完全免费分享,无任何限制,安装也简单. 源码下载后请自行检测安全,在使用过程中发生的任何问题请自行处理,本站不承担任何责任 ...

  7. 知乎日报 API 分析

    声明 下面全部 API 均由 知乎(Zhihu.Inc) 提供,本人採取非正常手段获取. 获取与共享之行为或有侵犯知乎权益的嫌疑.若被告知需停止共享与使用.本人会及时删除此页面与整个项目. 请您暸解相 ...

  8. APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)

    正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群 APPUI设计③群58946771 APP设计资源⑤群 386032923欢迎大家加入交流 ...

  9. Win10通用程序 UWP版HtmlAgilityPack UWP应用使用示例

    Win10 UWP版HtmlAgilityPack,UWP应用使用示例下载. Win10 发布了一个多星期,sdk是随着一起发布的,我安装好vs2015和sdk 开发UWP 通用程序. 在做网络解析的 ...

随机推荐

  1. 安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

    针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验.目前功能还在免费开放中. 点击地址:http://wetest ...

  2. 【NLP】Python NLTK获取文本语料和词汇资源

    Python NLTK 获取文本语料和词汇资源 作者:白宁超 2016年11月7日13:15:24 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集 ...

  3. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

  4. 介绍一款原创的四则运算算式生成器:CalculateIt2

    家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...

  5. 推荐一个ASP.NET网站内容管理系统源码

    许多人都有各自的兴趣,如打球.踢毽子.看书.看电视.玩游戏等等....我近来迷上了猜灯谜,于是业余做了一个在线猜灯谜的网站:何问起谜语. 先出个谜语让你猜猜:不可缺一点(打一字).可以在线猜:http ...

  6. js闭包 和 prototype

    function test(){ var p=200; function q(){ return p++; } return q; } var s = test(); alert(s()); aler ...

  7. JDBC增加删除修改

    一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...

  8. iOS自定义model排序

    在开发过程中,可能需要按照model的某种属性排序. 1.自定义model @interface Person : NSObject @property (nonatomic,copy) NSStri ...

  9. jenkins无法重启tomcat的原因

    在使用Hudson的执行sh脚本的时候,如果sh脚本是一个后台进程,如 Tomcat 这样的服务.如果使用Hudson的默认配置,会发现这些sh 进程有启动的过程,但是不会常驻后台,看Hudson 输 ...

  10. linux下 lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...