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

本文涉及的产品
文本翻译,文本翻译 100万字符
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
简介: 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天前
|
XML Java 数据格式
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
11 1
|
12天前
|
存储 JavaScript Java
ROS CDK魔法书:点亮博客上云新技能(Java篇)
在阿里云资源编排服务ROS的Cloud Development Kit(ROS CDK)中,开发者可以使用编程语言(如TypeScript、Java等)定义云资源,简化了基础设施即代码(IaC)的管理。ROS CDK的Asset模块是用于处理本地文件到云端对象存储(如OSS)的工具,它通过元数据封装本地资源,然后配合ROS CDK的部署工具将文件上传至云端。通过一个将本地博客网站部署到OSS的案例,文章展示了如何使用ROS CDK的Asset模块和BucketDeployment来实现这一过程。
662 1
|
9天前
|
存储 Java
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
30 0
|
12天前
|
XML Java 数据格式
java修改XML
java修改XML
14 0
|
2天前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
3天前
|
XML Java 数据库连接
【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed
**问题摘要:** Java 应用在执行MyBatis映射时抛出`IllegalArgumentException`,指出XML片段缺少`com.xxx.xxx.xxx.xxx.dao.SingleApasInfoDao.selectListCondition`的值。此异常暗示XML映射文件存在错误或未定义指定方法。解决策略包括检查映射文件中标签的完整性与属性设置,修复可能的XML格式错误,以及确保使用的XML解析器支持所需特性,如有必要,升级解析器。
8 1
|
4天前
|
Java API 开发者
Java中的文件I/O操作详解
Java中的文件I/O操作详解
|
4天前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
6天前
|
XML 缓存 JavaScript
优化Java中的XML解析性能
优化Java中的XML解析性能
|
11天前
|
Java
使用kafka-clients操作数据(java)
使用kafka-clients操作数据(java)
14 6