XML-RPC 简单理解与博客园的MetaWeblog协议

参考资料:

https://zh.wikipedia.org/wiki/XML-RPC
http://www.cnblogs.com/services/metablogapi.aspx


主要程序接口(来自博客园):

blogger.deletePost —— 删除文章

blogger.getUsersBlogs —— 获取用户博客信息

metaWeblog.editPost —— 编辑文章

metaWeblog.getCategories —— 获取用户博客分类

metaWeblog.getPost —— 获取文章

metaWeblog.getRecentPosts —— 获取最近的文章

metaWeblog.newMediaObject —— 添加媒体对象(图片等)

metaWeblog.newPost —— 添加文章

wp.newCategory —— 添加目录

接口说明


blogger.deletePost

请求

<?xml version="1.0"?>
<methodCall>
  <methodName>blogger.deletePost</methodName>
  <params>
    <param>
        <value><string>appkey</string></value>
    </param>
    <param>
        <value><string>postid</string></value>
    </param>
    <param>
        <value><string>username</string></value>
    </param>
    <param>
        <value><string>password</string></value>
    </param>
    <param>
        <value><boolean>0</boolean></value>
    </param>
  </params>
</methodCall>

返回

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <boolean>1</boolean>
            </value>
        </param>
    </params>
</methodResponse>

blogger.getUsersBlogs

请求

<?xml version="1.0"?>
<methodCall>
  <methodName>blogger.getUsersBlogs</methodName>
  <params>
    <param>
        <value><string>appkey</string></value>
    </param>
    <param>
        <value><string>username</string></value>
    </param>
    <param>
        <value><string>password</string></value>
    </param>
  </params>
</methodCall>

返回

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <array>
                    <data>
                        <value>
                            <struct>
                                <member>
                                    <name>blogid</name>
                                    <value>
                                        <string>dsafds</string>
                                    </value>
                                </member>
                                <member>
                                    <name>url</name>
                                    <value>
                                        <string>http://www.cnblogs.com/caipeiyu/</string>
                                    </value>
                                </member>
                                <member>
                                    <name>blogName</name>
                                    <value>
                                        <string>蛀牙</string>
                                    </value>
                                </member>
                            </struct>
                        </value>
                    </data>
                </array>
            </value>
        </param>
    </params>
</methodResponse>

metaWeblog.editPost

请求

返回


metaWeblog.getCategories

请求

返回


metaWeblog.getPost
请求

<?xml version="1.0"?>
    <methodCall>
      <methodName>blogger.getUsersBlogs</methodName>
      <params>
        <param>
            <value><string>postid</string></value>
        </param>
        <param>
            <value><string>username</string></value>
        </param>
        <param>
            <value><string>password</string></value>
        </param>
      </params>
</methodCall>

返回

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>dateCreated</name>
                        <value>
                            <dateTime.iso8601>时间</dateTime.iso8601>
                        </value>
                    </member>
                    <member>
                        <name>description</name>
                        <value>
                            <string>博客内容</string>
                        </value>
                    </member>
                    <member>
                        <name>title</name>
                        <value>
                            <string>标题内容</string>
                        </value>
                    </member>
                    <member>
                        <name>categories</name>
                        <value>
                            <array>
                                <data>
                                    <value>
                                        <string>[Markdown]</string>
                                    </value>
                                </data>
                            </array>
                        </value>
                    </member>
                    <member>
                        <name>enclosure</name>
                        <value>
                            <struct>
                                <member>
                                    <name>length</name>
                                    <value>
                                        <i4>0</i4>
                                    </value>
                                </member>
                            </struct>         
                        </value>
                    </member>
                    <member>
                        <name>link</name>
                        <value>
                            <string>http://.html</string>
                        </value>
                    </member>
                    <member>
                        <name>permalink</name>
                        <value>
                            <string>http://.html</string>
                        </value>
                    </member>
                    <member>
                        <name>postid</name>
                        <value>
                            <i4>00000</i4>
                        </value>
                    </member>
                    <member>
                        <name>source</name>
                        <value>
                            <struct />
                        </value>
                    </member>
                    <member>
                        <name>mt_keywords</name>
                        <value>
                            <string />
                        </value>
                    </member>
                </struct> 
            </value>
        </param>
    </params>
</methodResponse>

metaWeblog.getRecentPosts

请求

<?xml version="1.0"?>
<methodCall>
  <methodName>metaWeblog.getRecentPosts</methodName>
  <params>
    <param>
        <value><string>000000</string></value>
    </param>
    <param>
        <value><string>username</string></value>
    </param>
    <param>
        <value><string>password</string></value>
    </param>
    
    <param>
        <value><i4>10</i4></value>
    </param>
  </params>
</methodCall>

返回

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <array>
                    <data>
                        <value>
                            <struct>
                                <member>
                                    <name>dateCreated</name>
                                    <value>
                                        <dateTime.iso8601>20160405T18:32:00</dateTime.iso8601>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>description</name>
                                    <value>
                                        <string>博客测试内容</string>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>title</name>
                                    <value>
                                        <string>标题测试内容</string>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>enclosure</name>
                                    <value>
                                        <struct>
                                            <member>
                                                <name>length</name>
                                                <value>
                                                    <i4>0</i4>
                        
                                                </value>
                      
                                            </member>
                    
                                        </struct>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>link</name>
                                    <value>
                                        <string>http://www.cnblogs.com/caipeiyu/p/5356274.html</string>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>permalink</name>
                                    <value>
                                        <string>http://www.cnblogs.com/caipeiyu/p/5356274.html</string>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>postid</name>
                                    <value>
                                        <string>5356274</string>
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>source</name>
                                    <value>
                                        <struct />
                  
                                    </value>
                
                                </member>
                                <member>
                                    <name>userid</name>
                                    <value>
                                        <string>-2</string>
                  
                                    </value>
                
                                </member>
              
                            </struct>
            
                        </value>

          
                    </data>
        
                </array>
      
            </value>
    
        </param>
  
    </params>

</methodResponse>   

metaWeblog.newMediaObject

请求

返回


metaWeblog.newPost

请求
这个请求内容标题和内容是必须的,其他可以选填

<?xml version="1.0"?>
<methodCall>
  <methodName>metaWeblog.newPost</methodName>
  <params>
    <param>
        <value><string>postid</string></value>
    </param>
    <param>
        <value><string>username</string></value>
    </param>
    <param>
        <value><string>password</string></value>
    </param>
    <param>
         <value>
                <struct>
                    <member>
                        <name>description</name>
                        <value>
                            <string>博客测试内容</string>
                        </value>
                    </member>
                    <member>
                        <name>title</name>
                        <value>
                            <string>标题测试内容</string>
                        </value>
                    </member>
                    <member>
                        <name>categories</name>
                        <value>
                            <array>
                                <data>
                                    <value>
                                        <string>[Markdown]</string>
                                    </value>
                                </data>
                            </array>
                        </value>
                    </member>
                </struct> 
            </value>
    </param>
    <param>
        <value><boolean>0</boolean></value>
    </param>
  </params>
</methodCall>

返回

<?xml version="1.0"?>
<methodResponse>
    <params>
        <param>
            <value>
                <string>000000</string>
            </value>
        </param>
    </params>
</methodResponse>

wp.newCategory

请求

返回

posted @ 2016-05-09 22:54  蛀牙  阅读(...)  评论(... 编辑 收藏