Frage

Ich versuche zu benutzen Apache XMLRPC beiträge bei einem kleinen Weblog-Dienst verwalten.Der Support ist dort nicht großartig und sie können nicht wirklich helfen.Sie sagen, das Weblog unterstützt die metaweblog-api.

Ich versuche, alle meine Beiträge mit dem rpc abzurufen "MetaWeblog.getPost":

token = client.invoke("metaWeblog.getPost", new Object[] {123, // also tried "123" and "\"123\""
                                                          "username", 
                                                          "password"});

Wenn ich 123 (keine Anführungszeichen) verwende, erhalte ich diese Antwort: Java.lang.Ausnahme:Java.lang.Integer kann nicht in Java umgewandelt werden.lang.Zeichenfolge

Wenn ich "123" oder "\" 123 \"" (Anführungszeichen) verwende, erhalte ich diese Antwort: Java.lang.Ausnahme:Ungültiges Postid-Format:123

Dieser Code funktioniert mit meinen Wordpress-Blogs.

War es hilfreich?

Lösung

Wordpress funktioniert wahrscheinlich, weil es in PHP ist und nicht so typensitiv wie Java ist.

In den Dokumenten für MetaWeblog heißt es, dass die rohe XML-Darstellung einer Anfrage folgendermaßen aussieht:

<?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>

Sie müssen also versuchen, die Parameter als Variablen des richtigen Typs festzulegen

Die postId muss eine 32 große Ganzzahl sein, das Passwort ist base64-codiert, der Benutzername ist eine Zeichenfolge.

Deklarieren Sie Ihre Variablen ordnungsgemäß und übergeben Sie Variablen, keine Konstanten in Anführungszeichen, an die invoke-Methode.

Dann wird das XML, das unter der Haube von der RPC-Bibliothek gebildet wird, sicherstellen, dass <i4></i4> ist um die Post-ID usw.

Hoffe, das hilft ein wenig.Zumindest können Sie beweisen, dass die andere Seite MetaWeblog nicht richtig implementiert.Im besten Fall haben Sie Ihr Problem gelöst und können weitermachen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top