9

私は現在、この問題を通過するまで、壁に頭を何度もぶつけています。私はruby-1.9.3-p194とRailsを使用しています。Net :: HTTP.post_formで問題なく実行できるPOSTリクエストを作成しようとしていますが、ヘッダーにCookieを設定する必要があるため、ここでは使用できません。http.postはエラーになっています

"undefined method `bytesize' for #<Hash:0xb1b6c04>"

送信されているデータに対して何らかの操作を実行しようとしていると思います。

誰かが何らかの修正や回避策を持っていますか?

ありがとう

headers = {'Cookie' => 'mycookieinformationinhere'}
uri = URI.parse("http://asite.com/where/I/want/to/go")
http = Net::HTTP.new(uri.host, uri.port)
response = http.post(uri.path, {'test' => 'test'}, headers)
4

1 に答える 1

18

bytesizeメソッドはオンであり、StringではありませんHash。それがあなたの最初の手がかりです。2番目の手がかりは、次のドキュメントですNet::HTTP#post

post(path、data、initheader = nil、dest = nil)

に投稿dataします(文字列である必要があります)pathheader{'Accept' =>'/'、…}のようなハッシュである必要があります。

ハッシュが表示されると予想さ{'test' => 'test'}れる場所にハッシュを渡そうとしています。私はあなたがこのようなものがもっと欲しいと思います:postString

http.post(uri.path, 'test=test', headers)
于 2012-09-08T00:33:36.273 に答える