Я пытаюсь заставить PUT
работать с httpi
. Я использую curb
(curl
) в качестве адаптера с согласованием gss (мне нужно использовать токен Kerberos). Я могу GET
article_to_update
и POST
новых статей, используя почти тот же код (удалите article_to_update
из URL и измените put
на post
). С кодом ниже я получаю 408 ошибок: «Тайм-аут сервера в ожидании HTTP-запроса от клиента». Я также попробовал пустое тело и получил те же результаты.
Любые идеи о том, как заставить это работать или отлаживать дальше?
Также приветствуются альтернативные (не рельсовые) решения для реализаций GET / PUT / POST с аутентификацией Kerberos. Это для REST API, но я не видел, если / как гем 1013 * поддерживает Kerberos.
require 'curb'
require 'httpi'
require 'json'
HTTPI.adapter = :curb
url = URI.escape('https://myserver.com/rest/article/article_to_update')
request = HTTPI::Request.new(url: url, open_timeout: 30)
request.headers['Content-Type'] = 'application/json'
request.headers['Accept'] = 'application/json'
request.auth.gssnegotiate
request.body = JSON.dump(
name: 'discovery',
owner: 'greg'
)
response = HTTPI.put(request)