seguidores porque poner ponen pegar para hashtags entre diferencia deja copiar conseguir arroba ruby

ruby - porque - Usando Net:: HTTP.get para una URL https



instagram no me deja poner tags (4)

EDITAR: Mi enfoque funciona, pero el enfoque de @Jason-yeo es mucho más fácil.

Aparece a partir de 2.1.2 el método preferido documentado es el siguiente (citando directamente la documentación ):

HTTPS está habilitado para una conexión HTTP por # use_ssl =.

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

En versiones anteriores de Ruby necesitaría requerir ''net / https'' para usar HTTPS. Esto ya no es verdad.

Estoy intentando usar Net::HTTP.get() para una URL https:

@data = Net::HTTP.get(uri, Net::HTTP.https_default_port())

Sin embargo, obtengo el siguiente resultado cuando intento imprimir los resultados:

no puede convertir URI :: HTTPS en String

¿Cual es el trato? Estoy usando Ruby 1.8.7 (OS X)


En Ruby 2.0.0 y superior, basta con pasar un objeto uri con una URL https para hacer una solicitud de obtención de HTTPS.

uri = URI(''https://encrypted.google.com'') Net::HTTP.get(uri)

Puede verificar esto realizando una solicitud get en un dominio con un certificado vencido.

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

Fue introducido por este compromiso en Ruby 2.0.0.

El método get_response , que es llamado por el método Net::HTTP.get , establece :use_ssl en true cuando el uri.scheme es "https".

Descargo de responsabilidad: entiendo que la pregunta es para Ruby 1.8.7, pero dado que este es uno de los primeros pocos resultados de búsqueda cuando uno busca "https ruby", he decidido responder de todos modos.


Respuesta original:

uri = URI.parse("https://example.com/some/path") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true @data = http.get(uri.request_uri)

Como se señaló en los comentarios, esto es más elegante:

require "open-uri" @data = URI.parse("https://example.com/some/path").read


esto debería verse así:

uri.port = Net::HTTP.https_default_port() @data = Net::HTTP.get(uri)