加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为什么我在Rails中使用’net / http’获得“Er

发布时间:2020-12-16 23:32:37 所属栏目:百科 来源:网络整理
导读:我试图从URL解析 XML文件.当我尝试这样的事情时: require 'net/http'require 'rubygems'require 'xmlsimple'url = 'http://my-address.com/xmltest/note.xml'xml_data = Net::HTTP.get_response(URI.parse(url)).body 一切正常,但只有当我在Rails项目之外这
我试图从URL解析 XML文件.当我尝试这样的事情时:
require 'net/http'
require 'rubygems'
require 'xmlsimple'

url = 'http://my-address.com/xmltest/note.xml'
xml_data = Net::HTTP.get_response(URI.parse(url)).body

一切正常,但只有当我在Rails项目之外这样做时.如果我尝试在我的Rails 3项目中包含此文件并在那里解析它,我会收到错误“[控制器]中的Errno :: ECONNREFUSED” – 连接被拒绝 – 连接(2).

我的问题如下:我不知道如何安装net / http组件.我在http://www.rubygems.org寻找它,但我找不到它.

解决方法

Net::HTTP是Ruby标准库的一部分.您可以使用require’net / http’来加载它.

我建议使用Ruby的Open::URI,而不是使用Net :: HTTP,这对你想做的事情来说是相当低级的.

如果要移动大量HTTP数据,您可能需要查看类似于HTTPClient或Curb或Typhoeus的内容,这些内容专为大量使用而设计,并且可以省去使用Net :: HTTP编写所有内容的麻烦.

关于ECONNREFUSED错误:您可能希望捕获从get_response返回的HTTPResponse,然后在尝试读取正文之前检查其状态.您现在这样做的方式不会让您对失败的请求做出反应.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读