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

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top