2010-05-09 24 views

Odpowiedz

11

Przepisz kod tak:

uri = URI.parse(url) 
result = Net::HTTP.start(uri.host, uri.port) { |http| http.get(uri.path) } 
puts result.code 
puts result.body 

To spowoduje wydrukowanie kodu stanu następuje przez organizm.

+0

Dzięki! Próbowałem to, ale wynik. Status nie działa. Zamiast tego sprawdziłem result.class.name == "HTTPOK", to działa :-) –

+1

Przepraszam, powinno to być 'result.code', a nie' result.status'. Zaktualizowałem swoją odpowiedź. – Theo

+0

Uwaga: URI znajduje się w module 'net/http' –

1

Jak wiadomo, kod zawsze zwróci treść odpowiedzi, niezależnie od tego, czy wystąpił błąd, czy nie. W celu przetestowania kodu odpowiedzi, należy odpowiedzieć Theo, a po if, na przykład:

if result.code.to_i < 400 
    puts "success" 
end 

Ten przykład konwertuje kod (który jest ciągiem) do liczby całkowitej, i traktuje przekierowania i różne 200 kody równie udany.

Zobacz to na różne kody zwracane: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Powiązane problemy