I'm having the strangest issue. This code below works fine:
require 'json'
require 'net/http'
h = Net::HTTP.new("localhost", 4567)
while(l = gets.chomp!)
res = h.post("/api/v1/service/general",l)
puts res.body
end
However, with the small modification of getting host/port from parameters:
require 'json'
require 'net/http'
h = Net::HTTP.new(ARGV[0], ARGV[1])
while(l = gets.chomp!)
res = h.post("/api/v1/service/general",l)
puts res.body
end
..and starting with ruby service.rb localhost 4567
...
I get this error:
service.rb:4:in `gets': No such file or directory - localhost (Errno::ENOENT)
Using ruby 1.9.2p0 on Ubuntu 11.04
Have you tried while (l = $stdin.gets.chomp!)
? Otherwise Kernel#gets
reads from ARGV
.
Try it like this:
h = Net::HTTP.new(ARGV.shift, ARGV.shift)
while(l = gets.chomp!)
It will still fail if you pass in more than two arguments. You should call ARGV.clear
after constructing h
if you want to deal with that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With