2012-11-09 10 views
7

Uso la libreria OpenURI.Ruby Libreria Open-URI interrotta nel codice di errore HTTP 404

object = open("http://example.com") 

Se http://example.com risposta di codice del server è uguale a 200 il mio programma si comporta come mi aspettavo. Ma se il codice di risposta del server http://example.com è uguale a 400 (o altro), lo script si interrompe con OpenURI :: HTTPError: 404 Not Found.
Posso evitarlo se uso la costruzione 'begin-rescue' e gestisco 'l'eccezione HTTPError'.
È un modo corretto? Dovrei usare la libreria Net/Http invece di OpenURI per gestire tutti i casi?

risposta

6

Salvare il OpenURI::HTTPError è perfettamente ragionevole. Vedere questa risposta correlati: https://stackoverflow.com/a/7495389/289274

Ma se si preferisce non trattare con la gestione delle eccezioni, ecco come si può fare con Net::HTTP: https://stackoverflow.com/a/2797443/289274

+0

Purtroppo, sembra anche 'OpenURI :: HTTPError' non include qualsiasi contenuto che potrebbe essere stato restituito dalla richiesta (come una spiegazione dal server, oltre un codice di stato). – maurice

Problemi correlati