RoR Net :: HTTP post error undefined方法`bytesize'

时间:2012-09-08 00:14:24

标签: ruby-on-rails ruby post cookies

我正在反复撞墙,直到我通过这个问题。我正在使用ruby-1.9.3-p194和Rails。我正在尝试发布一个帖子请求,我可以用Net :: HTTP.post_form做得很好,但我不能在这里使用它,因为我需要在标题中设置一个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)

1 个答案:

答案 0 :(得分:16)

String方法位于Hash,而不是data。那是你的第一个线索。第二个线索是bytesize的文档:

  

帖子(路径,数据,initheader = nil,dest = nil)

     

帖子path(必须是字符串)到header{'test' => 'test'}必须是Hash,例如{'Accept'=&gt; '/',...}。

您正试图将哈希post传递给String,希望看到http.post(uri.path, 'test=test', headers) 。我想你想要更像这样的东西:

{{1}}