how to use Net::HTTP.get to retrieve passed parameter?

D

David Street

[Note: parts of this message were removed to make it a legal post.]

A third party has written a program that passes a parameter via the GET
method. I need to use it to call a Ruby script and pass a parameter.

I have researched and experimented for days and cannot figure out how to
retrieve a GET parameter in a Ruby script.

Test code to pass the parameter is:
---------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test Get</title>
</head>
<body>
<form action = 'http://localhost/cgi-bin/test.rb' method = 'get' />
<input type = 'hidden' name = 'parameter' value = '12345' />
<input type = "submit" value = "SUBMIT" />
</form>
</body>
</html>
---------------------------------------------

I believe I should retrieve it with something like this:
test.rb
--------------------------------------------------------------------
#!/usr/bin/ruby

require 'net/http'
require 'uri'

begin

print "Content-type: text/html\r\n\r\n"

server = URI.parse( 'localhost/cgi-bin/test.rb' )

http = Net::HTTP.start( server.host, server.port )

response = http.get( server.path )

print response.body

# or maybe

response = http.get['parameter']

print response

end

-------------------------------------------------------------------

But I always receive 'nil'. (I've tried many variations).

http.head( 'www.website.com' ) works and returns values as expected.

I'm sure this must be simple, but I have tried everything I can think of
and can't find an example anywhere.

Thanks to anyone who can assist.

-David
 
P

pharrington

[Note:  parts of this message were removed to make it a legal post.]

A third party has written a program that passes a parameter via the GET
method.  I need to use it to call a Ruby script and pass a parameter.

I have researched and experimented for days and cannot figure out how to
retrieve a GET parameter in a Ruby script.

Test code to pass the parameter is:
---------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test Get</title>
</head>
<body>
<form action = 'http://localhost/cgi-bin/test.rb'method = 'get' />
<input type = 'hidden' name = 'parameter' value = '12345' />
<input type = "submit" value = "SUBMIT" />
</form>
</body>
</html>
---------------------------------------------

I believe I should retrieve it with something like this:
test.rb
--------------------------------------------------------------------
#!/usr/bin/ruby

require 'net/http'
require 'uri'

begin

print "Content-type: text/html\r\n\r\n"

server = URI.parse( 'localhost/cgi-bin/test.rb' )

http = Net::HTTP.start( server.host, server.port )

response = http.get( server.path )

print response.body

# or maybe

response  = http.get['parameter']

print response

end

-------------------------------------------------------------------

But I always receive 'nil'.   (I've tried many variations).

http.head( 'www.website.com') works and returns values as expected.

I'm sure this must be simple, but I have tried everything I can think of
and can't find an example anywhere.

Thanks to anyone who can assist.

-David

this is not what Net::HTTP does. it is for making HTTP requests and
reading the responses, which is not what it seems your script needs to
do. documentation is always useful: http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html

You're looking for CGI, as it is a CGI script you are writing.
http://www.ruby-doc.org/stdlib/libdoc/cgi/rdoc/classes/CGI.html
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,734
Latest member
manin

Latest Threads

Top