2012-10-22 2 views
2

일부 언어에는 404 또는 500 메시지의 HTTP 내용을 가져올 수있는 라이브러리가 있다는 것을 알고 있습니다.404 오류 페이지 응답 루비의 내용 얻기

Ruby 용 라이브러리가 있습니까?

open-uri를 시도했지만 404 응답의 HTML 콘텐츠없이 HTTPError 예외 만 반환합니다.

답변

6

이것은 문서에서 충분히 명확하게 설명되어 있지는 않지만 HttpError에는 io 특성이 있습니다.이 특성은 내가 아는 한 읽기 전용 파일로 간주 할 수 있습니다.

require 'open-uri' 

begin 
    response = open('http://google.com/blahblah') 
rescue => e 
    puts e # Error message 
    puts e.io.status # Http Error code 
    puts e.io.readlines # Http response body 
end 
+0

달콤한! 정확히 내가 무엇을 찾고 있었는지. 나는 그들이이 문서에 이것을 포함 시키길 바란다. 나는 거기에 확인 하고이 정보를 찾지 못했습니다 (상태 및 코드 tho에 대한 정보를 찾지 못했습니다) – leeroid

4

Net::HTTP은 필요한 것을 지원합니다.

request_get 메서드를 사용할 수 있으며 상태 코드에 관계없이 응답을 반환합니다. 스크립트/콘솔에서

: 라이브러리가 기본적으로 당신에게 사용할 수없는 경우

> http = Net::HTTP.new('localhost', 3000) 
=> #<Net::HTTP localhost:3000 open=false> 
> resp = http.request_get('/foo') # a page that doesn't exist 
=> #<Net::HTTPNotFound 404 Not Found readbody=true> 
> resp.code 
=> "404" 
> resp.body 
=> "<html>...</html>" 

은 (, 당신은 HTTParty와 require 'net/http'

+0

달콤한. 고마워, 닉! Open-uri는 Net :: HTTP를 감싸는 래퍼 (wrapper) 인 것 같습니다. 정말 도움을 주셔서 감사합니다. – leeroid