Net :: HTTP SocketError:getaddrinfo:提供的nodename或servname,或者未知

时间:2015-10-25 03:31:22

标签: ruby

我已将谷歌用Google搜索过去,并在这个问题上通过相关帖子。我不认为它是Rails / Ruby问题,但不知道下一步该怎么做。

irb(main):007:0> Net::HTTP.get_response("http://www.apple.com","")
SocketError: getaddrinfo: nodename nor servname provided, or not known
from /Users/dan/.rbenv/versions/2.2.3/lib/ruby/2.2.0/net/http.rb:879:in `initialize'

否则没有网络问题。 apple.com在浏览器中加载正常。这是我本地计算机上开发的rails应用程序。希望通过第三方API提取JSON请求。所有Net :: HTTP请求都是这样的。

1 个答案:

答案 0 :(得分:4)

您必须将URI对象传递给textColor方法,以便其中包含get_responsescheme等信息:

host

因此,要解决您的问题,请这样做:

URI('http://www.apple.com').host
# => "www.apple.com"
URI('http://www.apple.com').scheme
# => "http" 

要获取响应正文,请执行以下操作:

Net::HTTP.get_response(URI("http://www.apple.com"))
# => #<Net::HTTPOK 200 OK readbody=true> 

有关详细信息,请参阅get_response文档。