2

我正在尝试将 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'
4

2 回答 2

4

我使用了,request.body=form_data而不是request.set_form_data并且有效。
但是我不确定为什么set_form_data不起作用。

将此标记为答案,因为这是迄今为止对我有用的答案。

于 2013-04-04T17:00:33.230 回答
2

set_form_data想要一个哈希,而不是一个 json,所以跳过to_json它应该会更好。

IE:

some_data = {:foo => :bar, :meh => :muh}
Net::HTTP::Post.new(uri.request_uri).set_form_data(some_data)
于 2013-04-03T06:58:09.640 回答