我正在尝试使用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网络日志。
答案 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。充其量,你已经解决了问题并且可以继续前进。