我已经用谷歌搜索死了,并浏览了有关此问题的相关文章。我不认为这是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都请求像这样的影片。

最佳答案

您必须将URI对象传递给get_response方法,以便它具有schemehost等信息。

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>

要获取响应正文,请执行以下操作:
Net::HTTP.get_response(URI("http://www.apple.com")).body

有关更多详细信息,请参见get_response文档。

09-30 17:37
查看更多