我把谷歌用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'
Run Code Online (Sandbox Code Playgroud)
否则没有网络问题.apple.com在浏览器中加载正常.这是我本地计算机上开发的rails应用程序.希望通过第三方API提取JSON请求.所有Net :: HTTP请求都是这样的.
您必须将URI对象传递给该get_response方法,以便它包含scheme等等host信息:
URI('http://www.apple.com').host
# => "www.apple.com"
URI('http://www.apple.com').scheme
# => "http"
Run Code Online (Sandbox Code Playgroud)
因此,要解决您的问题,请这样做:
Net::HTTP.get_response(URI("http://www.apple.com"))
# => #<Net::HTTPOK 200 OK readbody=true>
Run Code Online (Sandbox Code Playgroud)
要获取响应正文,请执行以下操作:
Net::HTTP.get_response(URI("http://www.apple.com")).body
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅get_response文档。
| 归档时间: |
|
| 查看次数: |
9737 次 |
| 最近记录: |