我正在尝试将json表示传递给set_form_data,并且遇到以下错误:
undefined method `map' for "{\"first_name\":\"bill\",\"last_name\":\"gates\"}":String
以下是我创建请求的方式:
Net::HTTP::Post.new(uri.request_uri).set_form_data({"first_name" => "steve","last_name" => "jobs"}.to_json)
我缺少什么?
错误来自以下行:
/jruby/jruby-1.6.2/lib/ruby/1.9/net/http.rb:1593:in `set_form_data'
答案 0 :(得分:4)
我使用了request.body=form_data
而不是request.set_form_data
,这有效
但是我不知道为什么set_form_data
无效。
将此标记为答案,因为那是迄今为止对我有用的那个。
答案 1 :(得分:2)
set_form_data想要一个哈希,而不是一个json,所以跳过to_json
它应该会更好。
即:
some_data = {:foo => :bar, :meh => :muh}
Net::HTTP::Post.new(uri.request_uri).set_form_data(some_data)