谷歌为什么决定忽略pageSize参数以及为什么在使用不同的页面大小时收集的项目的总体大小会有所不同?这是一个例子:
Appsactivity.Activities.List request = service.activities().list()
.setDriveAncestorId(ancestorId)
.setGroupingStrategy("driveUi")
.setSource("drive.google.com")
.setUserId("me")
.setPageSize(pageSize);
List<Activity> list = new LinkedList<>();
ListActivitiesResponse response = null;
do {
response = request.execute();
List<Activity> fetched = response.getActivities();
System.out.println("page items: " + fetched.size());
list.addAll(fetched);
request.setPageToken(response.getNextPageToken());
} while (request.getPageToken() != null && request.getPageToken().length() > 0);
System.out.println("all items: " + list.size())
当我将pageSize设置为100时,我将得到720个项目(64,71,60,60,76,92,87,74,62,56,18),但是当我将pageSize设置为5时,结果集包含810个项目.我错过了什么或者它是一个API错误?
编辑
我刚刚使用事件时间作为键检查了singleEvents计数.很少有事件被复制,但是当使用不同的pageSize时,事件计数之间的显着差异仍然存在.
像这样的另一个问题google-api-java-client-pagesize
最佳答案 根据以下链接,它似乎是一个错误:
在某些情况下,结果集可能包含重复项
is-paging-broken-in-drive
以下链接包含页面大小振荡的说明.
drive-api-search-results