我正在尝试将 Curl 与 SPNEGO 一起使用,通过 ruby 协商某种身份验证。
我尝试了几个库,但似乎 httpi 有办法通过它的 curb 适配器来完成,例如以下链接:
https://gist.github.com/3179054#comments
我想知道是否有办法将 JSON 数据作为我的 curl 的"数据"部分而不是链接中给出的文件发送。(我的意思是卷曲-d选项)
我的卷发是这样的:
curl -X POST -d "{"id": "12341234","fieldsRequest":["title","state","component"]}" -H>"Accept: application/json" -H "Content-Type: application/json" --negotiate -u :>https://abcd.com/find/it
要使用 HTTPI/curb 发送 JSON 数据,只需将 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
选项,因为不需要分段开机自检:
req.auth.gssnegotiate
resp = HTTPI.post req do |http|
http.use_ssl
end