2008-12-31 11 views
1

Dans une application de chaussures, j'essaie de télécharger des éléments de certains sites Web internes. Je reçois cette erreurUtiliser des chaussures et télécharger sur https donne des erreurs ssl

Error in /tmp/selfgz14214/ruby/lib/net/protocol.rb line 66 
undefined method 'closed?' for #<OpenSSL::SSL::SSLSocket:0xb6af94f0> 

J'ai l'erreur ci-dessus pour ce code. Cela donne l'erreur ci-dessus si utilisé de chaussures.

require 'net/http' 
require 'net/https' 
require 'rexml/document' 

class Blogs 
    attr_reader :Connection 

    def initialize 
    @Connection = Net::HTTP::new("someInternalWebSite", 443) 
    @Connection.use_ssl = true 
    end 

    def get_blogs 
    doc = REXML::Document.new @Connection.get('/weblogs/feed/entries/atom').body 
    blogs = Array.new 
    # ----- some crap to parse the blogs 
    return blogs 
    end 

end 

Notez que ce problème ne se produit que lorsque vous travaillez à l'intérieur des chaussures.

Également en utilisant la méthode de téléchargement intégré dans les chaussures, il ne revient pas, même pas commencer l'événement se lève. Ce qui suit est le code pour que

download "https://internalWebsite/weblogs/feed/entries/atom", 
:start => lambda { 
    alert "hello" 
}, 
:progress => lambda { 
    alert "progress" 
}, 
:finish => lambda { 
    alert "finish" 
} 

Répondre

0

Les chaussures ne supportent pas HTTPS dans la version actuelle.

0

Je n'ai pas travaillé avec (ou bien entendu) des chaussures, mais quand je l'ai eu des problèmes avec l'accès à des choses via HTTPS en Ruby, il a souvent été un cas de ne pas avoir le certificat est correctement configuré.

Mon expérience avec ceci était il ya quelques années maintenant mais il peut être utile de faire un peu d'expérimentation juste pour vérifier que vous pouvez réellement faire une connexion SSL régulière avec ce code. Je m'attendrais à ce que vous ayez au moins besoin de lui indiquer où trouver le certificat client ou s'il n'a pas du tout besoin d'un certificat client.

Je rappelle aussi que j'avais besoin d'utiliser http-access2 plutôt que la bibliothèque http habituelle. Comme je l'ai dit, je suis sûr que les choses ont évolué depuis que j'essayais de le faire, mais la plupart des problèmes que j'ai rencontrés concernant les connexions ssl étaient liés au certificat.

+0

Pour le certificat, j'obtiens un avertissement disant que le certificat envoyé par le serveur est mauvais mais c'est tout. Notez que le code ci-dessus fonctionne correctement (à l'exception d'un avertissement de certificat incorrect) lorsqu'il est exécuté à partir de la ligne de commande ou à l'aide de rspec. Mais si je cours de l'intérieur des chaussures seulement alors j'ai ce problème. – Ram

+0

Ah, dans ce cas, je crains que je ne peux certainement pas aider. Il vaut probablement la peine de regarder les listes de diffusion spécifiques à chaque chaussure ... – glenatron