Чтобы создать сценарий Ruby, проверяющий коды состояния URL-адресов, перечисленных в файле, вы можете использовать библиотеку Net::HTTP для выполнения HTTP-запросов.
- Он определяет функцию
check_status_code
, которая принимает URL-адрес в качестве входных данных, отправляет HTTP-запрос к этому URL-адресу с помощьюNet::HTTP
и проверяет код состояния ответа. - Сценарий ожидает один аргумент командной строки, который представляет собой имя входного файла, содержащего список URL-адресов для проверки.
- Он считывает каждую строку из входного файла, отсекает все начальные/конечные пробелы с помощью
chomp
и вызываетcheck_status_code
для проверки кода состояния для каждого URL-адреса. - Он печатает результат для каждого URL-адреса, указывая, является ли код состояния «ОК» (200) или «Не в порядке» (любое, кроме 200), или есть ли ошибка.
Код:
require 'net/http' def check_status_code(url) uri = URI(url) begin response = Net::HTTP.get_response(uri) if response.code.to_i == 200 return "#{url} - Status Code: #{response.code} (OK)" else return "#{url} - Status Code: #{response.code} (Not OK)" end rescue StandardError => e return "#{url} - Error: #{e.message}" end end if ARGV.length != 1 puts "Usage: ruby status_checker.rb <input_file>" exit(1) end input_file = ARGV[0] if !File.exist?(input_file) puts "Input file '#{input_file}' not found." exit(1) end # Read URLs from the input file and check their status codes File.foreach(input_file) do |line| url = line.chomp result = check_status_code(url) puts result end
or
https://gitlab.com/nusantaracodes/HTTPStatus
Аргумент: ruby status_checker.rb input_urls.txt
Замените input_urls.txt
именем входного файла, содержащего список URL-адресов для проверки. Скрипт прочитает URL-адреса из файла и предоставит коды состояния для каждого URL-адреса.