Я пытаюсь использовать модуль Perl RPC :: XML :: Client для обработки XMLRPC API из Dokuwiki. In another SO post, the XMLRPC API of Dokuwiki was suggested as a way to programmatically post pages..Вход в DokuWiki с использованием RPC в Perl :: XML :: Client (или поочередно, как я могу удаленно отправлять страницы в экземпляр DokuWiki)
Я не уверен, что я делаю неправильно, но я не могу войти в систему, используя этот код:
#!/bin/env perl
package PostWiki;
use 5.010; # Require at least Perl version 5.10
use strict; # Must declare all variables before using them
use warnings; # Emit helpful warnings
use autodie; # Fatal exceptions for common unrecoverable errors (e.g. open)
use RPC::XML::Client;
my $client = RPC::XML::Client->new('http://example.com/wikiname/lib/exe/xmlrpc.php');
my $logged_on_ok = $client->send_request('dokuwiki.login','username','password');
my $res = $client->send_request('dokuwiki.getVersion');
print $res;
Я получаю эту ошибку:
RPC::XML::Client::send_request: HTTP server error: Unauthorized
Я вхожу на страницу вручную, используя одно и то же имя пользователя и пароль, так что это не должно быть проблемой.
У меня есть remoteuser
, установленное на то же имя пользователя, что я использую для входа в wiki для внесения ручных изменений. (Для целей безопасности это не то же самое, что и пользователь-администратор).
У меня также есть securecookie
unchecked, так как каждый может свободно просматривать сайт, хотя только некоторые могут его отредактировать. Но это также не сработало, когда я его проверил.
У меня нет доступа к самому серверу, кроме как через wiki, иначе я мог бы просто скопировать файлы на сервер.
Cookies сделали это! 'my $ client = RPC :: XML :: Client-> new ('http://example.com/wikiname/lib/exe/xmlrpc.php', useragent => [cookie_jar => {file =>" $ ENV {HOME} /. Cookies.txt "}],);' исправляет его. –