我正在尝试开发一个 Android 应用程序来浏览我拥有的由 Wordpress 提供支持的博客。我试图弄清楚如何从博客中检索帖子和其他信息以显示在应用程序中。我已经看遍了,但我完全迷失了方向。这是完全可以用 Java/XML 完成的吗?如果是这样,怎么做?
谢谢!
是的,这是可以做到的。
一种方法是使用 xml-rpc api。Wordpress 博客有一个 xml-rpc api(您需要在 Wordpress 博客的“设置 - 写作”下启用它)。您还需要在博客上创建一个用户,您至少授予该用户读取权限,并在您的应用程序中包含该用户的凭据。从那时起,您可以对您的 Wordpress 博客进行 xml-rpc 调用。
如果可以选择使用此 xml-rpc api,请查看此 Java 库:http ://code.google.com/p/wordpress-java/
你可以像这样使用这个库来获取博客文章:
String username = args[0];
String password = args[1];
String xmlRpcUrl = args[2];
Wordpress wp = new Wordpress(username, password, xmlRpcUrl);
List<Page> recentPosts = wp.getRecentPosts(10);
此外,官方的 Wordpress Android 应用程序是开源的。获取它的说明位于:http ://android.wordpress.org/development/ 您可以使用此源代码作为起点并根据您的需要进行调整。
请注意,只有当您拥有具有读取权限的用户时,您才能使用 xml-rpc api。如果您没有具有读取权限的用户的凭据,则无法使用 xml-rpc api 获取帖子。获取 rss 提要并使用一些 java lib 解析 rss 提要可能是您最好的选择(查看http://www.vogella.com/articles/RSSFeed/article.html以了解如何使用 Java 阅读 rss 提要)。
正如Integrating Stuff所说,'net.bican:jwordpress:0.6.4' 是您所需要的。尽管如此,他给出的例子现在已经被弃用了。不再有 getRecentPosts(int) 而是 getPosts(FilterPost)。
所以现在正确的代码是:
String username = args[0];
String password = args[1];
String xmlRpcUrl = args[2];
Wordpress wp = new Wordpress(username, password, xmlRpcUrl);
FilterPost filter = new FilterPost() ;
filter.setNumber(10);
List<Post> recentPosts = wp.getPosts(filter);
要了解更多信息,请查看示例: https ://github.com/canbican/wordpress-java/blob/bb4b60a008ee6d280aedd9174df4a657bff683ac/src/net/bican/wordpress/example/Main.java
此外,如果您使用的是 Gradle,请检查您可能面临的依赖关系问题: https ://github.com/canbican/wordpress-java/issues/54
还有一种替代方法,而且效果很好,
您可以在 word press 中安装 json 插件,您可以通过请求 url 来检索所有帖子...并在您的 android 视图中解析响应 json 将正常工作。