Last.fm的Java API - 如何从PaginatedResult让用户(Last.fm

2019-10-19 16:15发布

我是一个,但疑惑的LastFM等API,更准确地对PaginatedResult

我读了所有用户在PaginatedResult一组:

PaginatedResult<de.umass.lastfm.User> users = Group.getMembers("Classic Rock", key);

然后我尝试了两种方法来显示所有用户。 应该有大约25000,但我只得到约25只第一页? 我怎么能得到所有的结果吗?

//        for (int i = 0; i < users.getTotalPages();i++){
            for (User thisuser: users.getPageResults()){
                //for each user
                System.out.print(thisuser.getName() + " - age: " + thisuser.getAge() + " - country: " + thisuser.getCountry() + " - "+ thisuser.getGender() + " - is: " + thisuser.getId() + " - playcount: " + thisuser.getPlaycount() + " - num playlists: " + thisuser.getNumPlaylists() + "\n");
            }
//        }

        for (User thisuser: users){
            //for each user
            System.out.print(thisuser.getName() + " - age: " + thisuser.getAge() + " - country: " + thisuser.getCountry() + " - "+ thisuser.getGender() + " - is: " + thisuser.getId() + " - playcount: " + thisuser.getPlaycount() + " - num playlists: " + thisuser.getNumPlaylists() + "\n");
        }

Answer 1:

getMembers(String group, String apiKey)你使用的方法只得到第一页的分页结果。 您需要使用getMembers(String group, int page, String apiKey)过载和称它为要检索超越第一页每一页。 每个结果包含了多少个页面提供信息。

而且不要忘了,你可以多久进行API调用的API Last.FM的使用规则 - 1000次调用获得25000个经典摇摆将需要1个半小时,以检索(请求之间5秒)需要。

从文档 ;

一个PaginatedResult是由结果集可能是如此之大,它需要进行分页方法返回。 每个PaginatedResult包含结果页面的总数,当前页和Collection当前页面条目。



文章来源: Last.fm java API - how to get users from PaginatedResult
标签: java last.fm