2

我正在尝试使用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 cannot be cast to java.lang.String

当我使用 "123" 或 "\"123\"" (引号)时,我得到这个响应:java.lang.Exception: Invalid postid format: 123

此代码适用于我的 Wordpress 博客。

4

1 回答 1

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>

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

postId 需要为 32 位大整数,密码为 base64 编码,用户名为字符串。

正确声明您的变量并将变量而不是引用的常量传递给调用方法。

然后,由 rpc 库在后台形成的 xml 将确保它<i4></i4>位于 post id 等周围。

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

于 2012-03-31T14:45:51.967 回答