错误响应XMLRPC



我正在尝试使用Apache XMLRPC来管理小型日志服务中的帖子。那里的支持不太好,他们也帮不了什么忙。他们说这个博客支持元博客api。

我正在尝试使用rpc"metaWeblog.getPost"检索我的所有帖子:

token = client.invoke("metaWeblog.getPost", new Object[] {123, // also tried "123" and ""123""
                                                          "username", 
                                                          "password"});

当我使用123(无引号)时,我得到的响应是:java.lang.Exception:java.lang.Integer不能强制转换为java.lang.String

当我使用"123"或"\"123\"(引号)时,我会得到以下响应:java.lang.Exception:无效的postid格式:123

这段代码确实适用于我的Wordpress博客。

Wordpress之所以能工作,可能是因为它在PHP中,不像java那样对类型敏感。

metaWeblog的文档说,请求的原始xml表示如下:

<?xml version="1.0"?>
<methodCall>
    <methodName>metaWeblog.getPost</methodName>
    <params>
        <param>
            <value><i4>1829</i4></value>
            </param>
        <param>
            <value>Bull Mancuso</value>
            </param>
        <param>
            <value><base64>bm93YXk=</base64></value>
            </param>
        </params>
    </methodCall>

因此,您需要尝试将params建立为正确类型的变量

postId需要是一个32的大整数,密码是base64编码的,用户名是一个字符串。

正确地声明变量,并将变量(而不是带引号的常量)传递给invoke方法。

然后,rpc库在后台形成的xml将确保<i4></i4>在post-id周围,等等

希望这能有所帮助。至少,你可以证明对方没有正确地实现metaWeblog。充其量,你已经解决了你的问题,可以继续前进。

最新更新