1

在鞋子应用程序中,我试图从一些内部网站下载东西。我收到这个错误

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

我收到此代码的上述错误。如果从鞋子中使用,则会出现上述错误。

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

请注意,此问题仅在从鞋内跑步时发生。

同样在鞋子中使用内置的下载方法,它不会返回,甚至不会引发启动事件。以下是该代码

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

2 回答 2

0

我没有使用过(或者确实听说过)鞋子,但是当我在 Ruby 中通过 HTTPS 访问内容时遇到问题时,通常是证书设置不正确。

我在这方面的经验是几年前的事了,但可能值得做一些实验来检查你是否真的可以用该代码建立常规的 SSL 连接。我希望您至少需要告诉它在哪里可以找到客户端证书,或者它根本不需要客户端证书。

我还记得我需要使用 http-access2 而不是常规的 http 库。

正如我所说,我确信自从我尝试这样做以来事情已经发生了变化,但是我发现的与 ssl 连接有关的大多数问题都与证书有关。

于 2008-12-31T10:46:46.403 回答
0

当前版本中,Shoes 不支持 HTTPS。

于 2009-01-15T08:09:39.627 回答