我知道一些語言有一個庫,它允許您獲取404或500消息的HTTP內容。獲取404錯誤頁面響應的內容ruby
是否有一個允許Ruby的庫?
我試過open-uri,但它只是返回一個HTTPError異常,沒有404響應的HTML內容。
我知道一些語言有一個庫,它允許您獲取404或500消息的HTTP內容。獲取404錯誤頁面響應的內容ruby
是否有一個允許Ruby的庫?
我試過open-uri,但它只是返回一個HTTPError異常,沒有404響應的HTML內容。
這似乎沒有在文檔中清楚說明,但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
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>"
(如果磁帶庫不提供給你默認,你可以做一個require 'net/http'
甜。謝謝尼克!看起來Open-uri是Net :: HTTP的一個包裝,使事情變得更簡單。真的很感謝幫助。 – leeroid
工程與HTTParty以及https://github.com/jnunemaker/httparty
require 'rubygems'
require 'httparty'
HTTParty.get("http://google.com/blahblah").parsed_response
有許多HTTP客戶端可供選擇,請從https://www.ruby-toolbox.com/categories/http_clients
甜美!正是我所期待的。我希望他們將這個包含在文檔中。我在那裏檢查,沒有找到這個信息(沒有找到狀態和代碼壽的信息) – leeroid