向第三方 API 发出 REST HTTP 请求时出错。可能与 IPv6 有关

Error When Making REST HTTP Request to 3rd Pary API. Possibly relate to IPv6

我正在尝试使用 rest-client 或 httparty 向第三方 API 发出一些 http 请求。代码 Im 运行 是:

在终端上:

 httparty 'http://swapi.co/api/people/1'

它抛出这个错误:

/Users/user_name/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:879:in `initialize': No route to host - connect(2) for "swapi.co" port 80 (Errno::EHOSTUNREACH)
from /Users/user_name/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:879:in `open'
from /Users/user_name/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'
from /Users/user_name/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/timeout.rb:73:in `timeout'
from /Users/user_name/.rvm/rubies/ruby-

在我的应用中:

 test_data=RestClient.get('http://swapi.co/api/people/1')

他们抛出类似的错误:

Errno::EHOSTUNREACH: No route to host - connect(2) for "swapi.co" port 80

来自 /Users/user_name/.rvm/gems/ruby-2.2.3/gems/http-0.9.9/lib/http/timeout/null.rb:18:in `initialize'

我认为这与 IP 配置有关,但我不确定从哪里开始进行故障排除。 如果有人能指出正确的方向来解决这个问题,我将不胜感激。

可能相关的注释: 1) 自从我从旧版本 OSX 更新到 Sierra OSX 后,我一直收到此错误。我这样做是因为在此之前,我的 http 请求(使用 rest-client、httparty 或 curl)可以正常工作,但它们始终需要 1 分 16 秒来获取非常少的数据。当我现在卷曲时,它们工作得非常快,所以问题就解决了。

我通过关闭 IPv4 解决了这个问题。不确定将来是否会再次困扰我,但现在已经消除了所有 HTTP 请求客户端的所有问题。