我还在学习ruby,我的代码似乎有问题我无法弄明白
require 'net/http'
File.open("html.txt", "r") do |file_handle|
file_handle.each_line do |server|
uri = URI( server )
res = Net::HTTP.get_response(uri)
if res.code != 200
puts " #{uri} => #{res.code}"
end
end
end
html.txt
http://stackoverflow.com
http://google.com
http://facebook.com
http://serverfault.com
http://twitter.com
我不想打印出响应'200'
的URI但是现在这就是印刷品:
http://stackoverflow.com => 200
http://google.com => 302
http://facebook.com => 302
http://serverfault.com => 200
http://twitter.com => 301
这是我的预期输出:
http://google.com => 302
http://facebook.com => 302
http://twitter.com => 301
任何人都可以帮我这个..?提前谢谢。
答案 0 :(得分:3)
响应代码是一个字符串。
您应该使用条件res.code != '200'
,请注意引号。
您的代码应如下所示:
require 'net/http'
File.open("html.txt", "r") do |file_handle|
file_handle.each_line do |server|
uri = URI( server )
res = Net::HTTP.get_response(uri)
if res.code != '200'
puts " #{uri} => #{res.code}"
end
end
end