【发布时间】:2018-08-24 07:51:22
【问题描述】:
我想做的是向用户询问一个 URL,然后查询该 URL 以查看它是否已启动,并以“响应 OK!”作为响应。如标题所述。
require 'net/http'
require 'url'
我在这里向用户询问一个 url 并尝试将该字符串定义为一个变量:
puts "\n\nWhat website would you like to check?\n\n"
userinput = gets.chomp
这里我正在检查带有该变量 $userinput 的 HTTP 响应
def main
while true
uri = URI.parse($userinput)
response = Net::HTTP::get_response(uri)
if response.code == "200"
puts "Response OK!"
else
puts "Received #{response.code} code. Probing again in 15s..."
end
sleep(15)
end
end
# Exit on CTRL-C SIGINT
Signal.trap("INT") {
puts "\nUser exited."
exit
}
main ()
下面是实际代码。我不知道如何粘贴这个:
What website would you like to check?
http://www.reddit.com
Traceback (most recent call last):
1: from prober.rb:33:in `<main>'
prober.rb:14:in `main': wrong number of arguments (given 1, expected 0) (ArgumentError)
删除 main() 之间的空格会导致:
Traceback (most recent call last):
5: from prober.rb:33:in `<main>'
4: from prober.rb:16:in `main'
3: from /usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/uri/common.rb:237:in `parse'
2: from /usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/uri/rfc3986_parser.rb:73:in `parse'
1: from /usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/uri/rfc3986_parser.rb:15:in `split'
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/uri/rfc3986_parser.rb:18:in `rescue in split': bad URI(is not URI?): (URI ::InvalidURIError)
【问题讨论】:
-
如果正在寻找如何实现 url 有效检查器的方法,请查看 this 答案。任何其他问题都可以更好地添加相应的错误堆栈跟踪。
-
您想查看哪个网站? reddit.com Traceback(最近一次调用最后一次):1:来自 prober.rb:33:in
<main>' prober.rb:14:inmain':参数数量错误(给定 1,预期为 0)(ArgumentError) -
您可以编辑您的问题,添加您评论的输出。那和任何其他信息。您可以添加以便我们更好地了解您的问题。
-
对于特定问题,删除
main和括号之间的空格。 Ruby,由于接受不带括号的方法调用的灵活性,因此使用空括号作为方法参数,因此您的 ArgumentError。 -
我看到了链接,但那是每次都检查静态网址。我希望它检查用户定义的变量,例如 $userinput 和 gets.chomp 的使用——删除 main () 之间的空格会给我带来更多错误呵呵
标签: ruby