2016-08-08 4 views
0

У меня неимоверно трудное время, делая что-то по-видимому простой ...рубин Сообщение запроса с базовой аутентификацией и Multiple Params

Я пытаюсь запустить простой запрос POST в рубин. Я посмотрел на бордюр, тиф, клиент-покой и т. Д. Пост-запрос имеет базовое auth (через ключ api) и два параметра ...

У меня есть команда, записанная в виде скручивания ниже, что работает отлично.

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

Может ли кто-нибудь помочь мне перевести это в рубин? Я не возражаю против использования тифа, бордюра и т. Д. ... до тех пор, пока он работает ...

ответ

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 

Есть около миллиона различных библиотек запросов HTTP в Ruby, но иногда ее просто просто записать его в Net HTTP (Net HTTP включен в рубин стандартной библиотеки).

+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'} 
) 
Смежные вопросы