2016-08-08 35 views
0

我有一个可笑的困难时期做一些简单的推测...红宝石POST请求使用基本身份验证和多PARAMS

我试图运行红宝石简单的POST请求。我已经看过遏制,typhoeus,休息客户端等...该发布请求具有基本身份验证(通过API密钥)和两个参数...

我有下面的卷曲形式写出的命令,这完美的作品。

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

谁能帮我翻译成ruby吗?我不介意使用typhoeus,路边等...只要它可以工作...

回答

1

我以前使用过这个工具,取得了一些成功。 https://jhawthorn.github.io/curl-to-ruby/

您的curl语句生成此Ruby代码。

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 

有在Ruby中约一百万个不同的HTTP请求库,但有时它只是简单的把它写在净HTTP(HTTP净额包括Ruby的标准库)。

+0

谢谢!!为我节省了时间。 – Brandon

1

rest-client对此也很简洁。

require 'rest-client' 

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