2

小さなウェブログサービスで投稿を管理するためにApacheXMLRPCを使用しようとしています。そこのサポートは素晴らしいものではなく、彼らは本当に助けることができません。彼らは、ウェブログがmetaweblogapiをサポートしていると言います。

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ウェブログで機能します。

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>

そのため、params を正しい型の変数として確立する必要があります

postId は 32 の大きな整数である必要があり、パスワードは base64 でエンコードされ、ユーザー名は文字列です。

変数を適切に宣言し、引用符で囲まれた定数ではなく、変数を呼び出しメソッドに渡します。

次に、rpc ライブラリによってフードの下で形成される xml が<i4></i4>、投稿 ID などの周りにあることを確認します。

これが少し役立つことを願っています。少なくとも、相手側が metaWeblog を適切に実装していないことを証明できます。せいぜい、あなたは問題を解決し、動き続けることができます。

于 2012-03-31T14:45:51.967 に答える