修改Z-Blog的RPC接口,兼容MWeb发布服务

事出有因

今天下载新版MWeb,准备研究下发布服务,发现zblog竟然不能很好支持,每次提交是成功的,但是无法修改,只能修改ID为1的文章,很是蛋疼。通过抓包发现,其原因是没有返回文章ID,而是返回了一个boolean值:

<methodResponse><params><param><value><boolean>1</boolean></value></param></params></methodResponse>

解决思路是修改返回值,增加文章ID。

增加NewArticleID参数

检查代码发现 PostArticle() 仅返回一个布尔值,为了尽量少的修改代码,我在$_POST加入了一个变量进行处理。
修改/zb_system/function/c_system_event.php

function PostArticle()
{
    ...
    // modify by piaoyun
    // 2018-08-09
    // 增加一个参数供rpc调用
    $_POST['NewArticleID'] = $article->ID;
    return true;
}

修改xmlrpc返回值

修改/zb_system/xml-rpc/index.php

function xmlrpc_editPost($id, $xmlstring, $publish)
{
...
        //$strXML = '<methodResponse><params><param><value><boolean>$%#1#%$</boolean></value></param></params></methodResponse>';
        // modify by piaoyun
        // 2018-08-09
        // 修改value类型
        $strXML = '<methodResponse><params><param><value><string>$%#1#%$</string></value></param></params></methodResponse>';

        if (PostArticle() == true) {
            //$strXML = str_replace("$%#1#%$", 1, $strXML);
            // modify by piaoyun
            // 2018-08-09
            // 调用NewArticleID返回给客户端
            $strXML = str_replace("$%#1#%$", $_POST['NewArticleID'], $strXML);

            echo $strXML;
        } else {
            xmlrpc_ShowError(0, __FILE__, __LINE__);
        }
    }
}

再次测试,顺利提交,本文就是用MWeb提交的。_^

你可能感兴趣的文章

评论区

已有3位网友发表了看法:

1L 突突兔  2018-12-13 01:15:38 回复
https://www.dllhook.com/feed.php
RSS挂了,飘总修一下。
2L 电力猫  2021-04-23 14:59:37 回复
修改了,好像没效果!不知道是否有文件分享下!

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。