1

我正在尝试将 Curl 与 SPNEGO 一起使用,通过 ruby​​ 协商一种身份验证。

我尝试了几个库,但似乎 httpi 有办法通过它的路边适配器来做到这一点,就像这个链接:

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

我想知道是否有办法将 JSON 数据作为 curl 的“数据”部分而不是链接中给出的文件发送。(我的意思是 curl -d 选项)

我的卷曲是这样的:

curl -X POST -d "{"id": "12341234","fieldsRequested":["title","state","component"]}" -H >"Accept: application/json" -H "Content-类型:application/json" --negotiate -u : >https://abcd.com/find/it

4

1 回答 1

1

要使用 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选项,因为不需要多部分 POST:

req.auth.gssnegotiate
resp = HTTPI.post req do |http|
  http.use_ssl
end
于 2012-09-29T10:49:18.340 回答