Ruby如何使用argv在命令行中传递url?

时间:2017-10-18 12:56:31

标签: ruby command-line http-headers

我们假设我的文件名是 test.rb

我想使用argv[0]访问第一个参数,argv[1]访问我的代码中的第二个参数,以便在命令行中传递url,如下所示:

ruby test.rb http://www.www.youtypeitwepostit.com /messages

test.rb 文件包含:

require 'net/http'
uri = URI.parse('http://www.youtypeitwepostit.com')
http=Net::HTTP.new(uri.host,uri.port)
request = Net::HTTP::Get.new("/")
reply=http.request(request)
puts "#{reply.code} #{reply.message}"
reply.header.each_header {|key,value| puts "#{key}
= #{value}" }
puts "#{reply.body}"

请教我如何做到这一点。

由于

2 个答案:

答案 0 :(得分:0)

使用此命令行,url是第一个参数。

您可以通过访问ARGV [0],

来使用它

例如

uri = URI.parse(ARG[0])

答案 1 :(得分:0)

require 'net/http'
uri = URI.parse(ARGV[0])
http=Net::HTTP.new(uri.host,uri.port)
request = Net::HTTP::Get.new(ARGV[1])
reply=http.request(request)
puts "#{reply.code} #{reply.message}"
reply.header.each_header {|key,value| puts "#{key}
= #{value}" }
puts "#{reply.body}"

然后只需用:

来调用它

ruby​​ test.rb http://www.youtypeitwepostit.com / messages