ruby-on-rails - rails - ruby restclient post
¿Cómo puedo manejar los errores con HTTParty? (3)
También puede utilizar métodos de predicado tan útiles como el success?
o bad_gateway?
De este modo:
response = HTTParty.post(uri, options)
p response.success?
La lista completa de posibles respuestas se puede encontrar en Rack::Utils::SYMBOL_TO_STATUS_CODE
constant.
Estoy trabajando en una aplicación Rails utilizando HTTParty para realizar solicitudes HTTP. ¿Cómo puedo manejar los errores de HTTP con HTTParty? Específicamente, necesito capturar HTTP 502 y 503 y otros errores como la conexión rechazada y los errores de tiempo de espera.
Esta respuesta aborda los fallos de conexión. Si no se encuentra una URL, el código de estado no te ayudará. Rescátalo así:
begin
HTTParty.get(''http://google.com'')
rescue HTTParty::Error
# don´t do anything / whatever
rescue StandardError
# rescue instances of StandardError,
# i.e. Timeout::Error, SocketError etc
end
Para más información ver: este tema github.
Una instancia de HTTParty::Response tiene un atributo de code
que contiene el código de estado de la respuesta HTTP. Se da como un número entero. Entonces, algo como esto:
response = HTTParty.get(''http://twitter.com/statuses/public_timeline.json'')
case response.code
when 200
puts "All good!"
when 404
puts "O noes not found!"
when 500...600
puts "ZOMG ERROR #{response.code}"
end