compruebe el código de estado de https ruby

¿Hay alguna forma de verificar un código de estado HTTPS en ruby? Sé que hay formas de hacer esto en HTTP usando require 'net/http' , pero estoy buscando HTTPS. Tal vez hay una biblioteca diferente que necesito usar?

Puedes hacer esto en net / http:

 require "net/https" require "uri" uri = URI.parse("https://www.secure.com/") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) res = http.request(request) res.code #=> "200" 

Refs:

  • Net :: hoja de trucos HTTP
  • Cómo curar Net :: Risky Comportamiento HTTPS predeterminado de HTTP

Puede usar cualquier envoltorio alrededor de Net :: HTTP (S) para obtener un comportamiento mucho más fácil. Utilizo Faraday aquí ( https://github.com/lostisland/faraday ) pero HTTParty tiene casi la misma funcionalidad ( https://github.com/jnunemaker/httparty )

  require 'faraday' res = Faraday.get("https://www.example.com/") res.status # => 200 res = Faraday.get("http://www.example.com/") res.status # => 200 

(como bonificación, obtiene opciones para analizar las respuestas, generar excepciones de estado, registrar solicitudes …

  connection = Faraday.new("https://www.example.com/") do |conn| # url-encode the body if given as a hash conn.request :url_encoded # add an authorization header conn.request :oauth2, 'TOKEN' # use JSON to convert the response into a hash conn.response :json, :content_type => /\bjson$/ # ... conn.adapter Faraday.default_adapter end connection.get("/") # GET https://www.example.com/some/path?query=string connection.get("/some/path", :query => "string") # POST, PUT, DELETE, PATCH.... connection.post("/some/other/path", :these => "fields", :will => "be converted to a request string in the body"} # add any number of headers. in this example "Accept-Language: en-US" connection.get("/some/path", nil, :accept_language => "en-US") 
 require 'uri' require 'net/http' res = Net::HTTP.get_response(URI('http://www.example.com/index.html')) puts res.code # -> '200'