Я хочу, чтобы иметь возможность сделать следующее в Ruby:HTTP Проверка диапазона кода в Ruby,
Я могу описать только то, что мне нужно сделать в PHP коде как сейчас:
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
$httpResponse = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if ($httpResponse >= 200 && $httpResponse < 300 || $httpResponse == 302) {
do some action;
}
Я знаю, о Net::HTTP
, который я получил следующий код из:
require 'net/http'
def check_status(uri_str, limit = 10)
# You should choose a better exception.
raise ArgumentError, 'too many HTTP redirects' if limit == 0
response = Net::HTTP.get_response(URI(uri_str))
case response
when Net::HTTPSuccess then #if 200 then do action
puts "It works!"
response.code
#response
when Net::HTTPRedirection then #if 3xx then check where it goes
location = response['location']
check_status(location, limit - 1)
else
response.value
end
end
print check_status('https://git.company.com')
Но я не знаю, как проверить, если ответ HTTP является >= 200
и < 300
или 302
.
Должен ли я написать чек на все HTTP responses? Или есть более простой способ, как этот PHP-код выше?
Почему бы просто не протестировать 'response.code' напрямую, если это все, о чем вы заботитесь? – tadman
Я думаю, потому что мой мозг жарится. :(Idk, почему я не думал об этом. Я тот, кто добавил, что response.code тоже .. lol – Fadi
Если вы можете исправить свой код, возможно, вы можете ответить на свой вопрос, чтобы помочь другим застрять в той же ситуации – tadman