java利用xml-rpc协议操作wordpress博客

简介: java利用xml-rpc协议操作wordpress博客

wordpress遵循xml-rpc协议,如果在wordpress中打开rpc协议,那么你就可以利用工具或者程序发表文章。

wordpress官方rpc协议文档:XML-RPC wp « WordPress Codex

metaWeblog协议文档:https://www.xmlrpc.com/metaWeblogApi

本文参考文档:IBM Developer

发表博客代码:

public static void post(String title, String content) {
        try {
            // Set up XML-RPC connection to server
            String domain = "wangjun.easymorse.com";// 你网站的域名
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL("https://" + domain + "/xmlrpc.php"));
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            Map post = new HashMap();
            post.put("title", title);// 标题
            post.put("mt_keywords", "java");// 标签
            Object[] categories = new Object[] { "计算机" };// 分类
            post.put("categories", categories);
            post.put("description", content);// 内容
            Object[] params = new Object[] { "1", "username", "password",post,true }; // 1代表正式发布,0代表草稿
            String ob = (String) client.execute("metaWeblog.newPost", params);
            System.out.println("Created with blogid " + ob);
        } catch (Exception e) {
            System.out.println(" UnCreated " + e.getMessage());
        }
    }
    public static void main(String[] args) {
        PostBlog.post("发布测试博客","测试成功");
    }

结果:

得到分类列表代码:

public static void getBlogCategories()  {
        try{
            String domain = "wangjun.easymorse.com";//你网站的域名
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL("https://"+domain+"/xmlrpc.php"));
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            Object[] params = new Object[] {"技术分享", "username", "password" };
            // 得到分类列表
            Object[] ob=(Object[])client.execute("metaWeblog.getCategories", params);
            System.out.println("分类列表:"+ob.length+","+ob[1]);
        }catch (Exception e) {
                       System.out.println(" UnCreated "+e.getMessage());
        }
    }
    public static void main(String[] args) {
        GetBlogCategories.getBlogCategories();
    }

结果如下:

分类列表:3,{categoryName=生活, parentId=0, htmlUrl=https://wangjun.easymorse.com/?cat=25, categoryDescription=, description=生活, categoryId=25, rssUrl=https://wangjun.easymorse.com/?feed=rss2&cat=25}

得到已经发表的博客文章代码:

public static void post()  {
        try{
            String domain = "wangjun.easymorse.com";//你网站的域名
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL("https://"+domain+"/xmlrpc.php"));
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            Object[] params = new Object[] {"485", "wangjun", "password",10};
            Object[] ob=(Object[])client.execute("metaWeblog.getRecentPosts", params);
        System.out.println("得到博客 " + ob[7]);
        }catch (Exception e) {
                       System.out.println(" UnCreated "+e.getMessage());
        }
    }
    public static void main(String[] args) {
        GetBlog.post();
    }

结果:

得到博客 {custom_fields=[Ljava.lang.Object;@18fe7c3, postid=357, mt_allow_comments=1, permaLink=https://wangjun.easymorse.com/?p=357, post_status=publish, link=https://wangjun.easymorse.com/?p=357, mt_excerpt=, userid=1, mt_text_more=, mt_allow_pings=1, mt_keywords=android, java, milestone, title=android获取手机型号和系统版本号, date_created_gmt=Thu Jun 10 02:52:04 CST 2010, wp_password=, description=<p> 有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,见:</p>  <p><a href="https://wangjun.easymorse.com/wp-content/uploads/2010/06/image3.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="81" alt="image" src="https://wangjun.easymorse.com/wp-content/uploads/2010/06/image_thumb3.png" width="244" border="0" /></a> </p>  <p>这是我手机milstone的相关信息。</p>  <p>获取的方法是:</p>  <blockquote>   <p>public void onCreate(Bundle savedInstanceState) {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; super.onCreate(savedInstanceState);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; setContentView(R.layout.main);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; TextView textView = (TextView) findViewById(R.id.text);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; textView.setText(&quot;Product Model: &quot; + android.os.Build.MODEL + &quot;,&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; + android.os.Build.VERSION.SDK + &quot;,&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; + android.os.Build.VERSION.RELEASE);      <br />&#160;&#160;&#160; }</p></blockquote>, dateCreated=Thu Jun 10 10:52:04 CST 2010, categories=[Ljava.lang.Object;@13e8d89, wp_author_id=1, wp_slug=android%e8%8e%b7%e5%8f%96%e6%89%8b%e6%9c%ba%e5%9e%8b%e5%8f%b7%e5%92%8c%e7%b3%bb%e7%bb%9f%e7%89%88%e6%9c%ac%e5%8f%b7, wp_author_display_name=王军}

其中发表图片方法见参考文档。

源代码:https://easymorse.googlecode.com/svn/trunk/rpctest/


相关文章
|
9天前
|
存储 缓存 Java
滚雪球学Java(59):从基础到高阶:Java中LinkedList的操作指南
【6月更文挑战第13天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
12 1
滚雪球学Java(59):从基础到高阶:Java中LinkedList的操作指南
|
3天前
|
Java
在Java中,你可以创建一个简单的四则运算程序来执行小学级别的加减乘除操作
【6月更文挑战第19天】Java程序实现简单四则运算,接收用户输入的两个数字和运算符,根据运算符调用相应函数进行计算。包含加、减、乘、除功能,其中除法操作检查了除数是否为零,避免运行时错误。
17 5
|
1天前
|
Java 索引
从干将莫邪的故事说起--java比较操作注意要点
从干将莫邪的故事说起--java比较操作注意要点
|
1天前
|
网络协议 安全 Java
Java网络编程入门涉及TCP/IP协议理解与Socket通信。
【6月更文挑战第21天】Java网络编程入门涉及TCP/IP协议理解与Socket通信。TCP/IP协议包括应用层、传输层、网络层和数据链路层。使用Java的`ServerSocket`和`Socket`类,服务器监听端口,接受客户端连接,而客户端连接指定服务器并交换数据。基础示例展示如何创建服务器和发送消息。进阶可涉及多线程、NIO和安全传输。学习这些基础知识能助你构建网络应用。
10 1
|
2天前
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
8 2
|
3天前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
10 3
|
3天前
|
网络协议 Java
在Java中使用TCP协议搭建一个简单的客户端
如何在Java中使用TCP协议搭建一个简单的客户端
11 2
|
3天前
|
算法 搜索推荐 Java
二叉树的基本概念、常见操作以及如何使用Java代码
二叉树的基本概念、常见操作以及如何使用Java代码
8 1
|
3天前
|
存储 安全 Java
Java集合类是Java编程语言中用于存储和操作一组对象的工具
【6月更文挑战第19天】Java集合类,如`List`、`Set`、`Map`在`java.util`包中,提供高级数据结构。常用实现包括`ArrayList`(快速随机访问)、`LinkedList`(高效插入删除)、`HashSet`(无序不重复)、`TreeSet`(排序)、`HashMap`(键值对)和`TreeMap`(排序映射)。集合动态调整大小,支持对象引用,部分保证顺序。选择合适集合优化性能和数据组织。
8 1
|
9天前
|
JSON Java 网络架构
【elastic search】JAVA操作elastic search
【elastic search】JAVA操作elastic search
8 1