2016-07-08 3 views
0

У меня есть завиток линии, как это:Преобразование curl to open-uri в рубине?

curl https://api.paymill.com/v2.1/checksums -u 'private_user_key' -d 'checksum_type=paypal' -d 'amount=4200' 

, и я хочу, чтобы превратить его в открытый URI-вызова, как это:

require 'open-uri' 
open("https://api.paymill.com/v2.1/checksums", http_basic_authentication: ['private_user_key']) 

работает до сих пор, но как я могу включать - d атрибутов данных, таких как -d 'checksum_type = paypal' -d 'amount = 4200'?

Спасибо, Андреас

+0

Я хотел бы предложить, что вы смотрите на драгоценный камень под названием Снаряженная. У меня были те же проблемы в прошлом, что позволит вам использовать ту же самую линию завивки в вашем приложении – MageeWorld

+0

@phoffer, я попытался заменить -d на атрибут как данные: {'checksum_type = paypal', 'amount = 4200 '} или d: {..}, поскольку он работал для -u и http_basic_authentication: ... но ничто из этого не помогло мне – kernification

+0

@MageeWorld Спасибо, но я стараюсь избегать использования этого драгоценного камня. – kernification

ответ

1

Я думаю, вы будете лучше использовать Net::HTTP непосредственно (вместо открытого Ури который является только удобство обертка). Это дает вам больше контроля над сделанным запросом.

require 'net/http' 
uri = URI("https://api.paymill.com/v2.1/checksums") 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Post.new(uri.request_uri) 
request.basic_auth("username", "password") 
request.set_form_data('checksum_type' => 'paypal', 'amount' => 4200) 
response = http.request(request) 
Смежные вопросы