rails net make golang ruby https

net - ruby on rails http get request



Solicitudes HTTPS en Ruby (2)

¿Hay una gema o una biblioteca para solicitudes HTTPS en Ruby? ¿Cómo se llama y puede proporcionar algún ejemplo de uso?

Lo que estoy tratando de hacer es abrir una página, analizar un poco de texto y luego generarla.


Solicitud SSL con Ruby Standard Library

require ''net/http'' require ''uri'' Net::HTTP.get URI(''https://encrypted.google.com'')

Net::HTTP en Ruby (> = 2.0.0) realiza la verificación SSL de forma predeterminada si pasa un objeto URI que tiene una URL "https". Consulte https://github.com/ruby/ruby/blob/778bbac8ac2ae50f0987c4888f7158296ee5bbdd/lib/net/http.rb#L481

Puede verificar esto realizando una solicitud de obtención en un dominio con un certificado caducado.

uri = URI(''https://expired.badssl.com/'') Net::HTTP.get(uri) # OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed

Solicitud SSL con gemas HTTP Ruby

Si desea utilizar una alternativa, puede usar las siguientes gemas que también realizan la verificación SSL de forma predeterminada:

  1. Excon

Excon es una implementación pura de Ruby HTTP.

require ''excon'' Excon.get ''https://encrypted.google.com''

  1. Curb

Curb es un cliente HTTP que utiliza libcurl bajo el capó.

require ''curl'' Curl.get ''https://encrypted.google.com''

  1. http.rb

HTTP o http.rb es una implementación pura de Ruby HTTP, pero usa http_parser.rb para analizar las solicitudes y respuestas HTTP. Dado que http_parser.rb usa extensiones nativas, afirma ser una de las bibliotecas de clientes HTTP más rápidas. Pero como siempre, toma puntos de referencia con un grano de sal.

require ''http'' HTTP.get ''https://encrypted.google.com''

  1. HTTPClient

HTTPClient es otra implementación pura de Ruby.

require ''httpclient'' HTTPClient.get ''https://encrypted.google.com''

Lo que se enumera aquí son las bibliotecas HTTP y no las envolturas HTTP. Las gemas HTTParty como HTTParty y Faraday envuelven alrededor de una implementación HTTP particular o usan adaptadores para proporcionar una interfaz HTTP unificada. Puede consultar esta matriz de comparación de las características del cliente HTTP de Ruby . Compara las características de cada una de las bibliotecas de clientes HTTP. Pero tenga en cuenta que la información no se actualiza desde 2012 .


Hay una biblioteca integrada en el lenguaje llamado Net::HTTP

Un ejemplo de uso de esto sería:

uri = URI(''https://example.com/some_path?query=string'') response = Net::HTTP.start(uri.host, uri.port) do |http| request = Net::HTTP::Get.new uri.request_uri http.request request # Net::HTTPResponse object end puts response.body

ACTUALIZACIÓN: es necesario incluir esa biblioteca de esta manera:

require ''net/https''