Я пытаюсь подключиться к XMLRPC API веб-сайта dokuwiki.Ruby XMLRPC localhost Runtime Ошибка: неправильный размер
Я успешно делает, что из моего собственного ноутбука, с подключением SSL, однако, когда я пытаюсь сделать это с моего рабочего сервера (который проходит как вики и приложение рельсы, из которого выполняется код рубин), я бегу в
Runtime Error
Wrong size. Was 163, should be 113
Вот как я инициализировать соединение:
@wiki = ::XMLRPC::Client.new3(
host: "wiki.example.com",
path: "/lib/exe/xmlrpc.php",
use_ssl: true)
# Temp Hack because SSL Fails
@wiki.instance_variable_get(:@http).instance_variable_set(:@verify_mode, OpenSSL::SSL::VERIFY_NONE)
end
@authenticated = false
authenticate!
end
def authenticate!
# Fails at below line :
@authenticated = @wiki.call("dokuwiki.login", ENV['WIKI_USER'], ENV['WIKI_PASSWORD'])
Rails.logger.info (@authenticated ? "Authenticated on Wiki !" : "Authentication failed on wiki !")
end
Я прочитал много сообщений о том, что есть ошибка в XMLRPC Lib Руби. Я рубиновый 2.1.5pxx на моем ноутбуке, и рубиновый 1.9.xx на моем сервере, так что я сделал rvm install 2.1.5
, но проблема все еще здесь
(кстати, я предположил, что это было достаточно, чтобы сделать rvm use 2.1.5
, а затем touch restart
к перезагрузите мой сервер rails, но как я могу проверить, какая версия рубина используется?)
Что не так?
EDIT
На моем ноутбуке, я бегу ruby 2.1.5p273 (2014-11-13 revision 48405) [x64-mingw32]
На моем сервере производства, я бегу ruby-2.1.5 [ i686 ]
Я попробовал другую библиотеку, Libxml-XMLRPC, и я получаю следующее ошибка при работе с той же командой:
Net::HTTPBadResponse: wrong status line: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">"
Но ag ain, тот же код работает нормально с клиентом ruby xmlrpc по умолчанию на моем Windows + rubyx64 2.1.5, поэтому я действительно не понимаю его!
Edit2: Я пытался добавить
@wiki.http_header_extra = { "accept-encoding" => "identity" }
Но тогда я получаю
Ошибка авторизации. HTTP-Error: 401 Несанкционированное
Первый вызов @wiki.call("dokuwiki.login", "myUsr", "myPwd")
работал, но, видимо, не удалось проверить подлинность меня (Конечно, я до сих пор используют ту же регистрационную информацию, которая должна работа)
EDIT 3
После расследования, успешно Войти с любым другим компьютера, чем локальный хост будет устанавливать кук как
@cookie="DokuWiki=[small string] ; [very big string]
Если я делаю это на локальном хосте: Я напишу [...] Для случайных строк
@cookie="[small string 2]=deleted; DokuWiki=[small string]; [very big string]"
Так у меня есть дополнительная переменная информация хранится в моем печенье, которое является «[струнным 2] = удалена;.
Я считаю, что это то, что делает сбой моего аутентификации Любой знает, что это такое?