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と、より適切に機能するはずです。

すなわち:

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