Rizado usando rubí
-
11-12-2019 - |
Pregunta
Estoy intentando utilizar Curl con SPNEGO para negociar el tipo de autenticación a través de Ruby.
Probé varias bibliotecas, pero parece que httpi tiene una forma de hacerlo a través de su adaptador, como este enlace:
https://gist.github.com/3179054#comments
Me preguntaba si hay alguna manera de enviar datos JSON como la parte de "datos" de mi curl en lugar de un archivo como se indica en el enlace.(Me refiero a la opción curl -d)
Mi rizo es así:
curl -X POST -d "{"id":"12341234","fieldsRequested":["título","estado","componente"]}" -H >"Aceptar:aplicación/json" -H "Tipo de contenido:aplicación/json" --negotiate -u :>https://abcd.com/find/it
Solución
Para enviar datos JSON con HTTPI/curb, simplemente configure su cadena JSON como el cuerpo de la solicitud de la siguiente manera:
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"}
Tampoco habilite el multipart_form_post
opción ya que no se necesita POST multiparte:
req.auth.gssnegotiate
resp = HTTPI.post req do |http|
http.use_ssl
end