I'm trying to do a POST using net/http.
When I do:
r = Net::HTTP.post_form(u,{'volumectrl'=>'-20'})
I get:
NoMethodError: undefined method `post_form' for Net::HTTP:Class
from (irb):5
What am I doing wrong?
Thanks!
I'm trying to do a POST using net/http.
When I do:
r = Net::HTTP.post_form(u,{'volumectrl'=>'-20'})
I get:
NoMethodError: undefined method `post_form' for Net::HTTP:Class
from (irb):5
What am I doing wrong?
Thanks!
itsme213 wrote:
I'm trying to do a POST using net/http.
r = Net::HTTP.post_form(u,{'volumectrl'=>'-20'})
I get:
NoMethodError: undefined method `post_form' for Net::HTTP:Class
from (irb):5
What ruby version are you running? I ran into this same problem last week, and it was because the standard stdlib documentation (on ruby-doc) refers to ruby 1.9, where the post_form method exists. It doesn't exist in ruby 1.8. Annoying huh?
Try something like:
Net::HTTP.start('www.foo.com', 80) do | http |
response = http.post('/cgi-bin/foo.cgi', encoded_post)
end
Note that you'll need to manually turn your hash into a URI-encoded string. Look at URI.encode() in the stdlib.
alex
It exists in 1.8.3, it would seem:
[Prospero:~] matt% ruby -v
ruby 1.8.3 (2005-09-21) [powerpc-darwin8.3.0]
[Prospero:~] matt% ruby
require 'net/http'
puts Net::HTTP.methods.include?("post_form")
true
I've used it with no problems at all, in the same basic format as the original poster.
matthew smillie.
On Jan 4, 2006, at 9:42, Alex Fenton wrote:
itsme213 wrote:
I'm trying to do a POST using net/http.
r = Net::HTTP.post_form(u,{'volumectrl'=>'-20'})
I get:
NoMethodError: undefined method `post_form' for Net::HTTP:Class
from (irb):5What ruby version are you running? I ran into this same problem last week, and it was because the standard stdlib documentation (on ruby-doc) refers to ruby 1.9, where the post_form method exists. It doesn't exist in ruby 1.8. Annoying huh?
Thanks Alex, that was it, I'm on 1.8.3.
"Alex Fenton" <alex@deleteme.pressure.to> wrote in message
news:2KKdnYKLbIafBSbeRVnyig@pipex.net...
itsme213 wrote:
I'm trying to do a POST using net/http.
r = Net::HTTP.post_form(u,{'volumectrl'=>'-20'})
I get:
NoMethodError: undefined method `post_form' for Net::HTTP:Class
from (irb):5What ruby version are you running? I ran into this same problem last week,
and it was because the standard stdlib documentation (on ruby-doc) refers
to ruby 1.9, where the post_form method exists. It doesn't exist in ruby
1.8. Annoying huh?Try something like:
Net::HTTP.start('www.foo.com', 80) do | http |
response = http.post('/cgi-bin/foo.cgi', encoded_post)
endNote that you'll need to manually turn your hash into a URI-encoded
string. Look at URI.encode() in the stdlib.alex