2016-04-09 18 views
0

Wäre sehr dankbar, wenn jemand mir helfen könnte, diese Curl-Anfrage in Ruby zu konvertieren? Ich habe seit einer Weile versucht und kann nicht die Syntax richtig bekommen.Curl bekommen Anfrage in Ruby

curl -v -H "Content-Type: application/json" -H "X-Knack-Application-Id:000000" -H "X-Knack-REST-API-Key:000000" https://api.knackhq.com/v1/objects/object_6/records 

versucht:

uri = URI('https://api.knackhq.com/v1/objects/object_1/records') 


Net::HTTP.start(uri.host, uri.port, 
       :use_ssl => uri.scheme == 'https') do |http| 
         request = Net::HTTP::Post.new uri 

         # API details of Knack 
         request["X-Knack-Application-Id"] = '56e72cd003219158' 
         request["X-Knack-REST-API-Key"] = 'd9c343d2-2a4b-291e0712a63a' 

      end 
+0

Ein wenig Code Formatierung würde nicht weh tun ... –

Antwort

1

Es gibt mindestens zwei Probleme.

Zuerst geben Sie im cURL Befehl keine Methode an, daher ist es standardmäßig GET, aber Sie verwenden POST in Ruby.

Zweitens Sie den Teil fehlen, wo Sie die HTTP-Anforderung ausführen

http.request(request) 

Hier ist der Code:

uri = URI('https://api.knackhq.com/v1/objects/object_1/records') 
req = Net::HTTP::Get.new(uri) 
req["X-Knack-Application-Id"] = '56e72cd003219158' 
req["X-Knack-REST-API-Key"] = 'd9c343d2-2a4b-291e0712a63a' 

res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http| 
    http.request(req) 
end 

Weitere Beispiele sind in der Net::HTTP documentation zur Verfügung.

+0

Dies ist, was ich versucht habe zu erreichen, aber ich bekomme jetzt den folgenden Fehler: /usr/lib/ruby/1.9.1/net/http.rb : 1861: in 'initialize ': undefinierte Methode' leer?' für # (NoMethodError) –

-1

Sie einige Edelsteine ​​versuchen Haben? Ich benutze RestClient oft für api reqests, hier ist mein Beispiel:

RestClient.post("https://api.knackhq.com/v1/objects/object_6/records", {}, {"X-Knack-REST-API-Key" => "000000", "X-Knack-Application-Id"=>"000000"})

Weitere Informationen zu: https://github.com/rest-client/rest-client