Вопрос

Я пытаюсь использовать Апач XMLRPC для управления публикациями в небольшом сервисе блогов.Поддержка там не очень хорошая, и они ничем не могут помочь.Они говорят, что блог поддерживает метавеблог API.

Я пытаюсь получить все свои сообщения с помощью RPC "metaWeblog.getPost":

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

Когда я использую 123 (без кавычек), я получаю такой ответ: java.lang.Исключение:java.lang.Integer нельзя привести к java.lang.String

Когда я использую «123» или «123» (кавычки), я получаю такой ответ: java.lang.Исключение:Неверный формат почтового идентификатора:123

Этот код работает с моим блогом Wordpress.

Это было полезно?

Решение

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

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

Затем XML, который формируется библиотекой RPC, будет гарантировать, что <i4></i4> вокруг идентификатора сообщения и т. д.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top