gpt4 book ai didi

ruby - 使用 Chef 捕获 HTTP 调用响应

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:50 25 4
gpt4 key购买 nike

我目前正在使用 Chef 构建一本 Recipe ,它必须触发对该 API 的一系列 POST 调用,并且我必须捕获变量中的响应以在第二个 HTTP 调用中使用它。

我试过使用 Ruby 的 http_request 资源,但我只能触发调用但不知道如何获取响应:

http_request 'authorize' do   
action :post
url '*****************************' headers ({
'Content-Type' => 'application/json'
}) message ({
:Username => "**********",
:Password => "**********"
}).to_json
end

在另一次尝试中,我尝试使用 Chef 的 http 客户端触发 POST 调用并获得响应:

  require "net/https"
require "uri"
require "json"
uri = URI("******************************")
req = Net::HTTP::Post.new(uri)
req.set_form_data("Username" => "********", "Password" => "*********")

res = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(req)
end

case res
when Net::HTTPSuccess, Net::HTTPRedirection
# OK
else
res.value
end

但是当我在我的节点上运行 chef-client 时,我不断收到这个错误:

EOFError
--------
end of file reached

如何使用 Chef/Ruby 发送 POST 调用并捕获其响应?

最佳答案

您想使用Chef::HTTP 客户端类,参见https://coderanger.net/chef-tips/#4举个例子。

关于ruby - 使用 Chef 捕获 HTTP 调用响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41968154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com