新浪微博开放平台API中page参数的使用方法

新浪微博开放平台API中page参数的使用方法

      在做项目的时候,有时候要调用新浪微博开放平台的API。说实话,新浪微博的API功能很强大,但是API文档写的不是很清楚。

我在做项目的时候,调用了很多API,大多都是查询类的,比如,输入一个uid,获取该用户所有的微博。这个时候就要用到https://api.weibo.com/2/statuses/user_timeline.json微博接口,这个接口的参数为:

      这里面大多数参数我们都知道什么意思,但是其中有个page参数让我纠结了好久,这个page说明是:返回结果的页码,默认为1。我以为是结果太多,要分很多页,然后page参数指定的是每次返回的页数,比如page=4,就返回总共4页的微博信息给我。但是当我这样做了之后,发现无论page设为多少,返回的都是固定的条数,比如20条,而每次返回的结果内容不一样。琢磨了好久,查了资料,做了实验之后,才知道,原来page参数的真正含义是:返回第几页的信息,而不是总页数。也就是你指定page=1,那么就返回第一页的,page=3就返回第三的信息。这样就明白了这个API的用法了。

      但是后来又遇到一个问题了,我怎么获取所有的微博信息?比如一个用户有200条微博,系统规定每次每页只能返回最多50条信息,那该怎么办?我第一想法是分多次去取,每次去一页的内容,下次再去下一页的内容。这个想法是对的,但是我怎么知道总共有多少页呢?

这个问题的解决方案就是,无论你去取哪一页的内容,最后返回信息里面都有一项,叫total_number:

也就是告诉你总共有多少条微博了。所以我们可以先取第一页(第一页总是存在的,所以取第一页保险一些),获取微博总数,然后用total_number去除以每页的微博数cout,再加上1,就是要取的总次数,然后在用循环去把每一页的微博信息取回来,这样就ok了。

      其他有page参数的API也一样。

原文地址:https://www.cnblogs.com/hewenwu/p/3674360.html