環境
- ruby 2.6
やりたいこと
Mechanizeでフォーム送信はできるが、普通はすでにページに存在するフォームに対してsubmitするのが一般的
ここではあえてコードだけでデータを付けた状態でフォーム送信をしてみる
コード
agent = Mechanize.new url = "https://httpbin.org/post" params = { "foo" => "bar" } node = {} # Create a fake form class << node def search(*args); []; end end node["method"] = "POST" node["enctype"] = "multipart/form-data" form = Mechanize::Form.new(node) Mechanize::Util.each_parameter(params) do |k, v| form.fields << Mechanize::Form::Field.new({"name" => k.to_s}, v) end form.action = url agent.submit(form)
これで multipart/form-data で送信できる。けどこれだったら普通にRestClient使ったほうがいいね