2017-11-22 35 views
0

Rubyを使用してパラメータを使用してGET/POSTデータを送信する一般的なメソッドを作成しようとしました:HTTP api(https://apidock.com/ruby/Net/HTTP)。したがって、パラメータの数は固定されていません。私はフォームデータを追加する方法を知っています、それは次のところで説明されています:Get HTTP request in Ruby、私は使用します。Ruby Net :: Http Api、GET/POSTで複数のパラメータを送信

uri = URI('http://www.example.com/todo.cgi') 
req = Net::HTTP::Post.new(uri.path) 
req.set_form_data('from' => '2005-01-01', 'to' => '2005-03-31') 

しかし、私はいくつのパラメータを持っているか知っているときに動作します。私はこれを試しましたが、置き換える代わりにデータを追加する方法を見つけることができませんでした。

parameter_list.each_with_index do |param,index| 
req.set_form_data(param.to_s => value_list[index]) 
end 

「パラメータリストの各パラメータに対して、フォームデータを追加する」をどのようにすればよいですか?

+1

私はそれがあなたの 'parameter_list'をどのように定義するかによって決まると思います。それが何であれ、すべての値パラメータにキーが必要なようです。以下のセバスチャンの例は、キーと値のペアを結合する1つの方法です – mhz

答えて

1

のようにあなたは、value_listparameter_listに参加し、ハッシュに変換することにより、独自のハッシュを作成し、フォームデータとして渡すことができます。制約が両方の配列が同じサイズを持っている必要があります

parameter_list = %w[from to foo] 
value_list = %w[2005-01-01 2005-03-31 bar] 

form_data = parameter_list.zip(value_list).to_h 

p form_data 
# {"from"=>"2005-01-01", "to"=>"2005-03-31", "foo"=>"bar"} 
req.set_form_data form_data 

注意。

関連する問題