2012-11-09 1 views
7

OpenURI 라이브러리를 사용합니다.Ruby Open-URI 라이브러리가 404 HTTP 오류 코드에서 중단되었습니다.

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

http://example.com 서버 코드 응답이 200과 같으면 내 프로그램이 예상대로 작동합니다. 그러나 http://example.com 서버 응답 코드가 400 (또는 기타)이면 OpenURI :: HTTPError : 404를 찾을 수없는 스크립트가 중단됩니다.
'begin-rescue'구조를 사용하고 'HTTPError 예외'를 처리하면이 문제를 피할 수 있습니다.
올바른 방법입니까? 모든 케이스를 처리하기 위해 OpenURI 대신 Net/Http 라이브러리를 사용해야합니까?

답변

6

OpenURI::HTTPError을 구하는 것은 완전히 합리적입니다. 이 관련된 대답을 참조하십시오 : https://stackoverflow.com/a/7495389/289274

을하지만 오히려 예외 처리를 처리하지 않을 경우, 여기 당신이 Net::HTTP 함께 할 수있는 방법은 다음과 같습니다 https://stackoverflow.com/a/2797443/289274

+0

슬프게도, 그것은 또한 OpenURI'처럼 보인다 :: HTTPError'은 포함되지 않습니다 요청에서 반환되었을 수도있는 모든 콘텐츠 (서버 설명, 상태 코드 초과) – maurice