Ich verwende derzeit Chefkoch, um ein Kochbuch aufzubauen, die eine Reihe von POST-Aufrufe an diese API auslösen muss, und ich muss die Antwort in einer Variablen erfassen, um es in einem zweiten HTTP zu verwenden Anruf.Capture HTTP Call Response mit Chef
Ich habe versucht, die http_request Ressource von Ruby verwenden, aber ich kann nur den Anruf ausgelöst, aber nicht wissen, wie die Reaktion eingefangen werden:
http_request 'authorize' do
action :post
url '*****************************' headers ({
'Content-Type' => 'application/json'
}) message ({
:Username => "**********",
:Password => "**********"
}).to_json
end
In einem weiteren Versuch habe ich versucht, Chef des http-Client abzufeuern einen POST-Anruf und ein eine Antwort erhalten:
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
Aber ich halte immer diese Fehlermeldung, wenn ich den Koch-Client auf meinem Knoten ausgeführt:
EOFError
--------
end of file reached
Wie kann ich einen POST-Anruf mit Chef/Ruby abschicken und seine Antwort erfassen?
Haben Sie eine Lösung gefunden? – inquisitive
@inquisitive Nein noch nicht – ehjay