Connection reset by peer - SSL_connect lors de l'ouverture d'une URL

Je suis tenté de télécharger un .fichier zip à partir d'une BingAds URL et me bats pour contourner cette erreur:

Connection reset by peer - SSL_connect

J'ai ce code en cours d'exécution dans la production à travers une autre application, mais je suis en utilisant la nitro.io pour une nouvelle application sur un chromebook et en cours d'exécution hors de leurs rails par défaut de l'installer (le protoxyde encadré).

Le code actuellement en train de travailler dans l'autre application:

class BingApi
  def self.get_data(request_params={})
    require 'zip'

    #Acquire Bing report download URL
    report_url = BingApi.acquire_report_url(report_request_id, request_params)

    zip_file = open(report_url)

    unzippedxml = Zip::File.open(zip_file)                      # open zip
    entry = unzippedxml.entries.reject(&:directory?).first      # take first non-directory
    entry.get_input_stream{|is| is.read }          # read file contents
  end

La report_url ressemblera à quelque chose comme: https://download.api.bingads.microsoft.com/ReportDownload/Download.aspx?q=cWmkJ72lVlzGEG%2fouLL8Xes2j6I5qVhLrnTqNIrW....

Lors de la visite, il vous invite à télécharger un .fichier zip que j'ai décompresser et ensuite les analyser.

Cependant, ce même code sur le chromebook en utilisant le protoxyde d'box me donne la Connection reset by peer - SSL_connect erreur

Errno::ECONNRESET - Connection reset by peer - SSL_connect:                                                                                                                                                                                          
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/net/http.rb:920:in `block in connect'                                                                                                                                                    
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/timeout.rb:76:in `timeout'                                                                                                                                                               
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/net/http.rb:920:in `connect'                                                                                                                                                             
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/net/http.rb:863:in `do_start'                                                                                                                                                            
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/net/http.rb:852:in `start'                                                                                                                                                               
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:313:in `open_http'                                                                                                                                                           
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:724:in `buffer_open'                                                                                                                                                         
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:210:in `block in open_loop'                                                                                                                                                  
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:208:in `open_loop'                                                                                                                                                           
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:149:in `open_uri'                                                                                                                                                            
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:704:in `open'                                                                                                                                                                
  /home/action/.parts/packages/ruby2.1/2.1.1/lib/ruby/2.1.0/open-uri.rb:34:in `open'                                                                                                                                                                 
  lib/bing_api.rb:25:in `get_data'                                                                                                                                                                                                                   
  lib/bing_api.rb:224:in `get_and_parse'   

J'ai essayé différentes solutions:

zip_file = open(report_url, :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE)

OU

zip_file = Faraday.get(report_url, :ssl => false)

Enfin, je l'ai contourné en utilisant:

uri = URI.parse(report_url)
https = Net::HTTP.new(uri.host, uri.port)
https.open_timeout = 5
https.use_ssl = true
https.ssl_version = 'SSLv3'
request = Net::HTTP::Get.new(uri.request_uri)
zip_file = https.request(request)

mais je ne peux pas passer le zip_file à unzippedxml = Zip::File.open(zip_file) ou je reçois un no implicit conversion of Net::HTTPOK into String TypeError.

Ai-je raté quelque chose de simple ici? Dois-je faire quelque chose de différent, que zip_file.class => Net::HTTPOK objet?

J'ai essayé d'appeler zip_file.body mais ce qui est retourné ressemble à ce que vous verriez si vous avez essayé d'ouvrir un fichier zippé dans un éditeur avant de décompression.

OriginalL'auteur macoughl | 2015-01-14