2016-08-08 33 views
0

Ich bin eine lächerlich harte Zeit, etwas zu tun, vermutlich einfach ...Ruby-POST-Anfrage mit Grunde Auth und Multiple Params

Ich versuche, eine einfache POST-Anfrage in Ruby zu laufen. Ich habe Bordstein, Typhoeus, Rest-Client, etc ... Die Post-Anfrage hat grundlegende Auth (über API-Taste) und zwei Params ...

Ich habe den Befehl in Curl Form unten geschrieben, die funktioniert perfekt.

curl -X POST https://api.com/v1 -u any_string:abc123 -d var1="help" -d var2="me" 

Kann jemand mir helfen, dieses in Rubin zu übersetzen? Ich habe nichts dagegen, Typhoeus, Bordstein, etc ... solange es funktioniert ...

Antwort

1

Ich habe dieses Tool mit einigem Erfolg verwendet. https://jhawthorn.github.io/curl-to-ruby/

Ihre curl-Anweisung generiert diesen Ruby-Code.

require 'net/http' 
require 'uri' 

uri = URI.parse("https://api.com/v1") 
request = Net::HTTP::Post.new(uri) 
request.basic_auth("any_string", "abc123") 
request.set_form_data(
    "var1" => "help", 
    "var2" => "me", 
) 

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| 
    http.request(request) 
end 

# response.code 
# response.body 

Es gibt etwa eine Million verschiedene HTTP-Request-Bibliotheken in Ruby, aber manchmal ist es nur einfach es in Net HTTP zu schreiben (Net HTTP wird in dem Ruby-Standard Library enthalten).

+0

danke !! Sparte mir eine Menge Zeit. – Brandon

1

rest-client ist auch ziemlich prägnant dafür.

require 'rest-client' 

RestClient::Request.execute(method: :post, url: 'https://api.com/v1', 
          user: 'any_string', password: 'abc123', 
          payload: {var1: 'help', var2: 'me'} 
)