2010-05-09 17 views

cevap

11
böyle kodunuzu yeniden yazma

: vücut tarafından takip edilen durum kodunu yazdırır

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

.

+0

Teşekkür! Bunu denedim ama sonuç.status işe yaramadı. Bunun yerine, result.class.name == "HTTPOK" seçeneğini işaretledim, hile yapar –

+1

Üzgünüz, 'result.status' değil, 'result.code' olmalıdır. Cevabımı güncelledim. – Theo

+0

Not: URI, 'net/http' modülündedir –

1

Bildiğiniz gibi, kodunuz hata olup olmadığına bakılmaksızın her zaman yanıt gövdesini döndürür. yanıt kodunu test etmek için, Theo'nun cevabı kullanın ve aşağıdaki eğer açıklamada, örneğin:

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

Bu örnek bir tam sayıya kod (bir dize olan) dönüştürür ve ikramlar yönlendirir ve çeşitli 200 kodları başarılı olarak.

çeşitli kodların bu döndürülen bakınız: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

İlgili konular