避免在 ruby 中的 if 条件下打印响应 '200'
avoid to print response '200' the if conditions in ruby
我还在学习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://whosebug.com
http://google.com
http://facebook.com
http://serverfault.com
http://twitter.com
我不想打印出响应为“200”的 URI
但现在打印的是:
http://whosebug.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
谁能帮我解决这个问题..?提前致谢。
响应代码是一个字符串。
您应该使用条件 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
我还在学习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://whosebug.com
http://google.com
http://facebook.com
http://serverfault.com
http://twitter.com
我不想打印出响应为“200”的 URI
但现在打印的是:
http://whosebug.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
谁能帮我解决这个问题..?提前致谢。
响应代码是一个字符串。
您应该使用条件 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