我正在使用Alamofire和SwiftyJSON访问Youtube的API并获取频道的播放列表计数。我的问题是Youtube每页只返回5个项目(或请求),我不知道如何访问其余内容!
func getPlaylists() {
Alamofire.request(.GET, playlistURL).validate().responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
print(json["items"].count) //Always returns 5
}
case .Failure(let error):
print(error)
}
}
}
有人可以告诉我如何访问下一组结果吗?
答案 0 :(得分:0)
您可以在API文档中找到答案,可能在YouTube Data API。
注意:在您的请求中,您可以使用查询参数设置每页的最大项目数:maxResults
。这可以是5到50,默认等于5.
当您收到响应时,服务器返回包含JSON值"nextToken": <string>
的JSON。在下一个请求中使用此值,您可以在其中插入查询参数pageToken=<string>
。
您可以修改getPlaylists
方法,使其获取参数nextToken: String
。最初使用空字符串或更好的方法调用此方法,将可选项初始化为nil
。
在完成处理程序中,从JSON响应中检索"nextToken"
值。如果存在,请使用此参数调用方法。否则,你得到了所有页面。
您的方法getPlaylists
也应该有一个完成处理程序。在检索完所有页面后调用完成处理程序。