Ошибка ответа XMLRPC - PullRequest
       31

Ошибка ответа XMLRPC

2 голосов
/ 12 марта 2012

Я пытаюсь использовать 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.

1 Ответ

1 голос
/ 31 марта 2012

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, имя пользователя - строка.

Объявите ваши переменные правильно и передайте переменные, а не константы в кавычках, в метод invoke.

Затем xml, который формируется под капотом библиотеки rpc, убедится, что <i4></i4> находится вокруг идентификатора записи и т. Д.

Надеюсь, это немного поможет. По крайней мере, вы можете доказать, что другая сторона неправильно реализует metaWeblog. В лучшем случае вы решили свою проблему и можете продолжать движение.

...