首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ruby中使用net::https

如何在ruby中使用net::https
EN

Stack Overflow用户
提问于 2010-08-03 21:03:00
回答 3查看 769关注 0票数 0
代码语言:javascript
复制
require 'net/http'
require 'uri'
Net::HTTP.get_print URI.parse('http://www.example.com/index.html')

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

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2010-08-03 21:07:00

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

票数 0
EN

Stack Overflow用户

发布于 2010-08-03 21:07:07

我没有,我得到了一个回应。你当时在线吗?

票数 0
EN

Stack Overflow用户

发布于 2011-01-05 12:05:12

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

从命令行窗口运行

  1. gem server运行一个很好的小型web服务器。
  2. 使用:http://localhost:8808打开一个指向gem服务器的浏览器窗口。您应该会看到一个格式良好的页面。
  3. 运行您的代码,调整URL以指向上述地址处的gem服务器。你应该会看到输出,可能是很多。
  4. 如果你得到了输出,你可以用<CNTRL>+C杀死gem服务器。在这一点上,您已经证明了Net::HTTP在本地工作,并且您已经完成了工作,除了找出机器外部阻止您看到"example.com".
  5. If的原因之外,您将得不到任何输出,在代码中将require 'open-uri'添加到您的要求列表中,并将HTTP::Net行替换为puts open('http://localhost:8808').read,然后再次尝试运行代码。
  6. 如果您无法通过Ruby网络堆栈中的某个东西滚动HTML,则是错误的。

在这一点上,您将了解到足够多的信息,可以通过编辑将更多细节添加到原始问题中。

另一个想法浮现在脑海中:你使用的是Windows。您是否启用了任何网络安全功能,如防火墙?会不会是它阻止了Ruby创建连接,但却允许你的浏览器?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3396695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档