如何在ruby中使用net::https

如何在ruby中使用net::https,ruby,Ruby,当我试着运行这个程序时,我遇到了这样的错误为什么 require 'net/http' require 'uri' Net::HTTP.get_print URI.parse('http://www.example.com/index.html') 代码看起来正确,并在我的计算机上按预期运行-您确定dns在您的计算机上设置正确吗?您需要代理来进行web调用吗?你能在浏览器中打开url吗?我不能,我收到了回复。你当时在线吗?尝试对问题进行三角剖分。您可以通过浏览器访问网站,但不能通过代码访问:

当我试着运行这个程序时,我遇到了这样的错误为什么

require 'net/http'
require 'uri'
Net::HTTP.get_print URI.parse('http://www.example.com/index.html')

代码看起来正确,并在我的计算机上按预期运行-您确定dns在您的计算机上设置正确吗?您需要代理来进行web调用吗?你能在浏览器中打开url吗?

我不能,我收到了回复。你当时在线吗?

尝试对问题进行三角剖分。您可以通过浏览器访问网站,但不能通过代码访问:

  • 从命令行窗口运行:
    gemserver
    ,运行一个漂亮的小型web服务器
  • 使用以下命令打开gem服务器的浏览器窗口:
    http://localhost:8808
    。您应该会看到一个格式良好的页面
  • 运行代码,调整URL以指向上面地址的gem服务器。您应该看到输出,可能很多
  • 如果获得输出,可以使用
    +C
    杀死gem服务器。在这一点上,您已经证明了Net::HTTP是在本地工作的,并且您已经完成了,除了找出机器外部阻止您看到“example.com”的内容之外
  • 如果没有输出,请将
    require'openuri'
    添加到代码中的require列表中,并将HTTP::Net行替换为
    put open('http://localhost:8808)。请阅读
    ,然后再次尝试运行代码
  • 如果您的Ruby网络堆栈中没有HTML滚动,则是错误的
  • 在这一点上,你将知道足够的信息,通过编辑原始问题,为原始问题添加更多细节


    另一个想法浮现在脑海中:你在Windows上。您是否启用了网络安全,如防火墙?可能是因为它阻止Ruby创建连接,但允许您使用浏览器吗?

    不,但我可以在浏览器中打开该url的特定url,我正在尝试此代码,但它不工作被引用站点的html源代码会打印在控制台上。Nikolaus我没有访问网络的权限,但有一个特定的url我可以打开将该url放入我的代码中它不起作用告诉我soultion我现在应该做什么尝试通过iPAddress而不是主机名访问服务器,以测试代码是否在名称服务器解析时中断-如果这样做有效,请确保在您的计算机上正确配置名称服务器,或者将ip/主机名对输入主机文件orry,但我没有得到你将ip/主机名配对到主机文件中,这意味着什么?我正在使用我可以打开的特定url,我正在尝试这段代码,但它在这里无法正常工作。你是否错过了通过代理或其他程序的一步?
    c:/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': getaddrinfo: no address associated with hostname. (SocketError)
        from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `open'
        from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
        from c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout'
        from c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
        from c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
        from c:/ruby/lib/ruby/1.8/net/http.rb:553:in `do_start'
        from c:/ruby/lib/ruby/1.8/net/http.rb:542:in `start'
        from c:/ruby/lib/ruby/1.8/net/http.rb:379:in `get_response'
        from c:/ruby/lib/ruby/1.8/net/http.rb:337:in `get_print'
        from ruby2.rb:3