错误响应XMLRPC

时间:2012-03-12 14:17:55

标签: exception response xml-rpc metaweblog

我正在尝试使用Apache XMLRPC来管理小型博客服务上的帖子。那里的支持不是很好,他们无法提供帮助。他们说博客支持metaweblog 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网络日志。

1 个答案:

答案 0 :(得分:1)

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>在帖子ID等周围。

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