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

本文涉及的产品
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
语种识别,语种识别 100万字符
简介: 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/


相关文章
|
1月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
59 19
|
2月前
|
XML JSON 网络协议
利用HTTP POST协议实现简单的RPC协议:WireShark抓包分析
通过这种方式,我们可以使用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这不仅可以帮助我们理解RPC协议的工作原理,也可以帮助我们调试和优化我们的代码。
108 30
|
2月前
|
JSON 数据格式
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
102 16
|
3月前
|
数据可视化 Linux 网络安全
零基础搭建WordPress博客全流程指南!
本指南详细介绍如何使用宝塔面板与WordPress搭建个人博客。宝塔面板提供可视化操作,简化服务器管理;WordPress拥有丰富的主题和插件生态,支持快速建站。教程涵盖准备阶段(服务器、域名、面板安装)、环境配置、站点创建、SSL证书申请、WordPress一键部署及网站配置等步骤,并推荐必备插件提升安全性和性能。零基础用户也可轻松上手,适合日均5000PV以下的博客需求,扩展性强,助你开启创作之旅。
227 7
|
5月前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
7月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
413 58
|
10月前
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
425 1
|
7月前
WordPress小白傻瓜式一键搭建博客个人网站详细教程
用宝塔功能来一键搭建WordPress博客网站。 最详细教程! 整个过程简单、易用,即使是零基础用户也能轻松上手。
731 1
|
8月前
|
缓存 安全 Java
三万字长文Java面试题——基础篇(注:该篇博客将会一直维护 最新维护时间:2024年9月18日)
本文是一篇全面的Java面试题指南,涵盖了Java基础、数据类型、面向对象、异常处理、IO流、反射、代理模式、泛型、枚举、Lambda表达式、Stream流等多个方面的知识点,并提供了详细的解析和代码示例。
217 1
三万字长文Java面试题——基础篇(注:该篇博客将会一直维护 最新维护时间:2024年9月18日)
|
8月前
|
域名解析 弹性计算 程序员
想要轻松地搭建一个即开即用的WordPress博客吗?借助宝塔面板镜像+阿里云ECS,迅速拥有自己的个人博客
拥有个人博客是每位程序员的梦想,但对服务器不熟悉的初学者而言,搭建博客颇具挑战。本文介绍利用阿里云市场的宝塔面板镜像与ECS云服务器,轻松搭建WordPress博客的方法,让您快速拥有专属博客空间。通过简单的操作步骤,即使是新手也能轻松上手,实现从零到有的博客搭建过程。
472 3