[英]How to handle SocketError - getaddrinfo: nodename nor servname provided, or not known [ruby]
[英]Net::HTTP SocketError: getaddrinfo: nodename nor servname provided, or not known
我已經用谷歌搜索了此信息,並瀏覽了有關此問題的相關帖子。 我不認為這是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
方法,以便它具有scheme
和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>
要獲取響應正文,請執行以下操作:
Net::HTTP.get_response(URI("http://www.apple.com")).body
有關更多詳細信息,請參見get_response文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.