【问题标题】:Ruby connect to REST serviceRuby 连接到 REST 服务
【发布时间】:2012-03-13 05:08:06
【问题描述】:

我需要访问 REST JSON 服务。它只是使用基本身份验证连接到 HTTPS 并执行一些 GET 和 POST。这是一个从 crontab 运行的 Ruby 脚本。

这些是要求:

  • Ruby 1.8.7
  • 尽可能轻(我不愿意安装 Rails)。

我应该使用 HTTParty 吗?我尝试安装 gem 并从 irb 使用它,但没有运气。显然它有一些依赖关系。 我应该去其他图书馆,比如 net/http 吗?

如果 HTTParty 是可行的方法,您能否提供一些关于如何使其在 IRB 控制台中工作的说明?

【问题讨论】:

  • 对于 HTTParty 示例,请查看 Github 上的示例目录。
  • 依赖是multi_json和multi_xml。如果你自己滚动,你将需要一个 json 解析器。
  • 关于您的“不走运”安装:什么操作系统,Ruby 版本?什么错误信息?我刚刚在 Windows/1.9.3 和 Ubuntu/RVM/1.9.3 和 JRuby 1.6.7 上成功安装了 httparty
  • 我使用的是 Ubuntu/Ruby 1.8.7,可能有问题。即使安装了 gem,我也会收到此错误:`require': no such file to load -- httparty (LoadError)
  • 对于 1.8,您需要先require 'rubygems'

标签: ruby json http


【解决方案1】:

ActiveResource 可能会以比 HTTParty 更优雅的方式来解决问题。

【讨论】:

  • 我读过一些关于它的东西,看起来真的很有趣。但是我想知道在这种情况下它是否不会过度杀伤力,因为我只需要一个 ruby​​ 脚本来发出一些简单的请求。
【解决方案2】:

每当我连接到 REST/JSON/API 或直接连接到站点时,我都会选择 HTTParty / Merhanize / Nokogiri,具体取决于我需要对站点做什么。我也一定会在他们的 HTTPClient 类别中检查 Ruby Toolbox 以获取其他流行的 gem。

>> require "httparty"
=> true
>> response = HTTParty.get("http://justinherrick.com/posts/what-it-means-to-stay-dry.json")
=> #<HTTParty::Response:0x104ceac70 @parsed_response={"slug"=>"what-it-means-to-stay-dry", "pubdate"=>"2012-02-06", "created_at"=>"2012-02-06T22:08:05+00:00", "category"=>"Programming", "title"=>"What it means to stay DRY", "body"=>"A very common and useful programming idiom...

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 1970-01-01
    • 2015-10-09
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多