我有10个我喜欢的YouTube频道,我希望获得每个频道的最新视频信息。现在我正在进行10次不同的调用,如下所示:
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2&alt=jsonc&start-index=1&max-results=1
我希望使用批量请求将这10个调用替换为单个调用。
我试过这个:
String xml = "<feed xmlns='http://www.w3.org/2005/Atom' xmlns:batch='http://schemas.google.com/gdata/batch'>" +
" <batch:operation type='query'/>" +
" <entry>" +
" <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_1</id>" +
" </entry>" +
" <entry>" +
" <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_2</id>" +
" </entry>" +
...
" <entry>" +
" <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_10</id>" +
" </entry>" +
"</feed>";
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://gdata.youtube.com/feeds/api/videos/batch?v=2");
StringEntity se = new StringEntity(xml);
se.setContentType("text/xml");
httpPost.setEntity(se);
HttpResponse response = httpClient.execute(httpPost);
我在HTTPResponse对象中获得了一个包含有用数据的XML。
但如果我想获得10个最新视频信息,我就不会知道videoId。
有人知道如何实现这个目标吗?
答案 0 :(得分:1)
您无法在请求正文中发出包含10个不同http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2
网址的批处理请求。
您需要申请http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2&max-results=1
10次,每次USERNAME
一次。
或者,如果您有一些排序服务器端流程,有兴趣了解新视频何时上传到指定渠道,您可以使用PubSubHubbub或SUP来更有效地处理该方案。因为你的问题是用android
标记的,所以我假设你关心这个客户端。