在 ruby 中发送带有身份验证的 https post 请求

send https post request with authentication in ruby

我在这里卷曲了:

curl https://test-api.pin.net.au/1/charges -u your-secret-api-key: \ 
 -d "amount=400" \ -d "currency=USD" \

如何使用net/http来post这个请求?它包括 ssl 和身份验证。

HTTP#post_form会直接执行

require 'net/http'
require 'uri'

url = URI.parse('https://test-api.pin.net.au/1/charges')
req = Net::HTTP::Post.new(url.path)
req.basic_auth 'user', 'pass'
req.use_ssl = true
req.form_data({'your-secret-api-key' => 'val1', 'amount' => 'val2', 'currency' => "USD"})

resp = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
puts resp

我现在解决了这个问题。这是答案

uri = URI.parse('https://test-api.pin.net.au/1/charges')  
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http  
req = Net::HTTP::Post.new(uri.path)  
req.basic_auth 'user', 'pass'  
req.set_form_data({ 'amount' => 'val2', 'currency' => "USD"}  
http.request(req))  
end