2012-09-08 16 views
8

Şu anda bu konuya geçene kadar başımı duvara çarptıyorum. Ruby-1.9.3-p194 ve Rails kullanıyorum. Net :: HTTP.post_form ile iyi yapabileceğim bir gönderi isteğinde bulunmaya çalışıyorum ancak bunu burada kullanamıyorum çünkü başlıkta bir çerez ayarlamanız gerekiyor. http.post Ben gönderilen veriler üzerinde bazı işlemi gerçekleştirmek için çalışıyor sanırım çünküRoR Net :: HTTP ileti hatası undefined method `bytesize '

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

söyleyerek erroring edilir.

Herkesin bir sorunu var mı, yoksa etrafta mı çalışıyor?

Teşekkür

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) 

cevap

16

bytesize yöntem üzerinde String değil Hash olduğunu. Bu senin ilk ipucun.

sonrası (yol, veri initheader = sıfır, varış = nil)

Mesaj data (olması gereken bir String) path için: ikinci ipucu Net::HTTP#post için belgelerdir. header, "cept Accept" => ‘/’,…} gibi bir Hash olmalı.

Bunu bir String görmeyi beklediğini post için, bir karma, {'test' => 'test'} geçmesi için çalışıyoruz. Sanırım daha fazlasını istiyorsun:

http.post(uri.path, 'test=test', headers) 
+0

Ah, teşekkürler, teşekkürler. Ben bir tane çıktım. – James

+0

http://stackoverflow.com/questions/798710/how-to-turn-a-ruby-hash-into-http-params –

İlgili konular