Java Microsoft Graph API:关于IDriveItemCollectionPage的问题

Java Microsoft Graph API:关于IDriveItemCollectionPage的问题,java,microsoft-graph-api,Java,Microsoft Graph Api,我查看了与此相关的文档,并为IDriveItemCollectionPage的工作方式而苦苦挣扎 我目前正在做以下工作,尝试列出一个站点的根驱动器的所有子驱动器项,该站点的驱动器Id为Java SDK public ArrayList<DriveItem> getDriveItemChildrenFoldersOfRootDrive(String rootDriveId){ //gets the children folder driveI IDriveIte

我查看了与此相关的文档,并为IDriveItemCollectionPage的工作方式而苦苦挣扎

我目前正在做以下工作,尝试列出一个站点的根驱动器的所有子驱动器项,该站点的驱动器Id为Java SDK

    public ArrayList<DriveItem> getDriveItemChildrenFoldersOfRootDrive(String rootDriveId){
    //gets the children folder driveI
    IDriveItemCollectionPage driveChildren= mGraphServiceClient.drives().byId(rootDriveId).root().children().buildRequest().get();
    ArrayList<DriveItem> results = new ArrayList<DriveItem>();
    results.addAll(driveChildren.getCurrentPage());
    return results;
}
public ArrayList getDriveItemChildrenFoldersOfRootDrive(字符串rootDriveId){
//获取子文件夹drivi
IDriveItemCollectionPage driveChildren=mGraphServiceClient.drives().byId(rootDriveId.root().children().buildRequest().get();
ArrayList结果=新建ArrayList();
results.addAll(driveChildren.getCurrentPage());
返回结果;
}

我意识到如果getNextPage返回null,那么就不会有更多的结果,但是如果有下一个页面,您是否必须进行另一个api调用才能获得下一个页面?如何使用上述设置来实现这一点?

同意Brad的观点。我在我身边进行了测试,并取得了成功。这是我的密码

public static void main(String[] args) {
    IGraphServiceClient client = GetClient();
    IDriveCollectionPage page = client.drives().buildRequest().get();
    List<Drive> drives = page.getCurrentPage();

    while(page.getNextPage() != null){
        page = page.getNextPage().buildRequest().get();
        drives.addAll(page.getCurrentPage());
    }

    System.out.println(drives.size());
}
publicstaticvoidmain(字符串[]args){
IGraphServiceClient=GetClient();
IDriveCollectionPage页面=client.drives().buildRequest().get();
列表驱动器=page.getCurrentPage();
while(page.getNextPage()!=null){
page=page.getNextPage().buildRequest().get();
drives.addAll(page.getCurrentPage());
}
System.out.println(drives.size());
}

同意布拉德的观点。我在我身边进行了测试,并取得了成功。这是我的密码

public static void main(String[] args) {
    IGraphServiceClient client = GetClient();
    IDriveCollectionPage page = client.drives().buildRequest().get();
    List<Drive> drives = page.getCurrentPage();

    while(page.getNextPage() != null){
        page = page.getNextPage().buildRequest().get();
        drives.addAll(page.getCurrentPage());
    }

    System.out.println(drives.size());
}
publicstaticvoidmain(字符串[]args){
IGraphServiceClient=GetClient();
IDriveCollectionPage页面=client.drives().buildRequest().get();
列表驱动器=page.getCurrentPage();
while(page.getNextPage()!=null){
page=page.getNextPage().buildRequest().get();
drives.addAll(page.getCurrentPage());
}
System.out.println(drives.size());
}

它看起来像是
getNextPage
返回一个生成器,所以我认为您应该只执行
getNextPage().buildRequest().get()
。将此添加为注释,因为我没有尝试过,所以我可能完全错了:)它看起来像
getNextPage
返回一个生成器,所以我认为您应该只执行
getNextPage().buildRequest().get()
。将此添加为注释,因为我尚未尝试,所以可能完全错误:)