2010-05-09 16 views

Respuesta

11

reescribir su código como este:

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

que imprimirá el código de estado seguido por el cuerpo.

+0

Gracias! Intenté esto pero result.status no funcionó. En cambio, revisé result.class.name == "HTTPOK", hace el truco :-) –

+1

Lo siento, debería haber sido 'result.code', no' result.status'. He actualizado mi respuesta. – Theo

+0

Nota: URI está en el módulo 'net/http' –

1

Como ya sabe, su código siempre devolverá el cuerpo de la respuesta, ya sea que haya un error o no. Para poner a prueba el código de respuesta, utilice la respuesta de Theo, y la siguiente sentencia if, por ejemplo:

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

Este ejemplo convierte el código (que es una cadena) a un entero, y trata redirecciona y varios 200 códigos como exitoso.

ver esto por los diversos códigos volvió: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Cuestiones relacionadas