Вопрос

Я пытаюсь использовать Curl с SPNEGO для согласования аутентификации через Ruby.

Я попробовал несколько библиотек, но, похоже, у httpi есть способ сделать это через адаптер ограничения, например по этой ссылке:

https://gist.github.com/3179054#comments

Мне было интересно, есть ли способ отправить данные JSON как часть «данных» моего завитка вместо файла, как указано в ссылке.(Я имею в виду опцию Curl -d)

Мой локон выглядит так:

локон -X POST -d "{"id":"12341234","fieldsRequested":["title","state","comComponent"]}" -H >"Принять:приложение/json" -H "Тип контента:приложение/json" --negotiate -u :>https://abcd.com/find/it

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

Решение

Чтобы отправить данные JSON с помощью HTTPI/curb, просто установите строку JSON в качестве тела запроса следующим образом:

require 'httpi'
require 'curb'
require 'json'  
# ...  

req.body = {"id"=>"12341234","fieldsRequested"=>["title","state","component"]}.to_json

# Then set your custom headers
req.headers = {"Accept" => "application/json", "Content-Type" => "application/json"}

Также не включайте multipart_form_post вариант, поскольку многочастный POST не требуется:

req.auth.gssnegotiate
resp = HTTPI.post req do |http|
  http.use_ssl
end
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top