エラー応答XMLRPC
-
12-12-2019 - |
質問
私は 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 Weblogのものと連携します。
解決
WordPressはPHPにあるために機能し、Javaとして型に敏感ではないので機能します。
メタベログのドキュメントは、要求の生の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エンコードされているため、ユーザー名は文字列です。
変数を正しく宣言し、引用符で囲まれていない変数をinvokeメソッドに渡します。
その後、RPCライブラリーによってフードの下に形成されているXMLは、<i4></i4>
がPOST IDなどにあることを確認します。
これが少し助けることを願っています。少なくとも、もう一方の側がメタロブログを正しく実装していないことを証明できます。せいぜい、あなたはあなたの問題を解決し、動いていくことができます。