Le Monde du Java

La Maison de René

统计

Amis

Blogs

Google

Others

学习

日常生活

留学法国

好奇怪的Google API

这几天在试用Picasa WebAPI。在获取相册信息的时候总是报数据解析异常:
com.google.gdata.util.ParseException: [Line 1, Column 262] Invalid root element, expected (namespace uri:local name) of (http://www.w3.org/2005/Atom:feed), found (http://www.w3.org/2005/Atom:entry
查看xml文件确实有这个问题,但一时也找不出什么解决方案。而且想想Google应该也不会把这么一个低级错误留在那里。后来仔细对比文档,终于发现了问题的所在。

对于每个相册都有一个唯一的Id,通过UserFeed可以获取一个AlbumEntry对象的列表,也就是相册的基本信息。AlbumEntry类中有一个getId()方法,用来获取相册的Id。之后再通过相册的Id就能得到一个AlbumFeed,也就是相册的详细内容。其中包括了一个PhotoEntry对象列表,即照片的信息。

但是,这个getId()并不仅仅返回一个Id值,而是一个URL字符串,格式如下:http://picasaweb.google.com/data/entry/api/user/<username>/albumid/<id>
通过这个URL可以得到一个XML文档,但该文档的格式是错误的,无法完成解析。查看文档后发现,正确的URL格式应该是:
http://picasaweb.google.com/data/feed/api/user/<username>/albumid/<id>
所以在调用getId()方法后,还要对返回URL字符串作切割来得到相册的Id,再构造出正确的URL。问题是解决了,但却不明白Google这样设计的原因,或许是一个Bug

posted on 2009-05-30 23:36 Rene 阅读(315) 评论(0)  编辑  收藏 所属分类: Programming


只有注册用户登录后才能发表评论。


网站导航: