在 Windows 服务器上使用带有 Rails 5.2 的 Nokogiri 时出现无效参数 @ rb_sysopen 错误

Invalid argument @ rb_sysopen error using Nokogiri with Rails 5.2 on Windows server

我在 Whosebug 或 Internet 上看了几个问答,但没有找到解决这个问题的方法。上下文很重要:

我希望使用 Nokogiri 来解析 XML 互联网上收集的资源。第一步是从 url:

中获取内容
resource = Nokogiri::XML(open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"))

但这会引发错误:

Errno::EINVAL
Invalid argument @ rb_sysopen - https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC

我还尝试了以下基于 Nokogiri tutorials 的方法:

resource = Nokogiri::XML(URI.open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"))

引发错误:private method 'open' called for URI:Module

如何从已发布的 API 中向 Nokogiri 提供 XML 数据?

非常感谢!

我的解决方案包括两个步骤:

  1. 我将 open-uri gem 添加到我的应用程序的 Gemfile 中,这样我就可以检索资源 URL.[=24= 的内容]
  2. 关于我的基础设施
  3. ,我将 proxy 选项定义为 false

然后可以创建Nokogiri文档:

resource = URI.open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"), proxy: false)
document = Nokogiri::XML(resource)

文档现在可以解析了。