【问题标题】:using curl in rails 3 controller?在rails 3控制器中使用curl?
【发布时间】:2013-10-04 09:25:31
【问题描述】:

在这里,我想从不同的来源导入数据库,使用这样的一些 api:

curl -H X-Auth-Ticket:47827EC1B6871D... https://url/10482/ApiGetDeepData | gzip -d >result.json

现在,这个命令会将 curl 结果导出到 json 文件中,我需要一种方法将这些 json 数据导入到我的 rails 3 数据库中。为此,我需要帮助将 json 文件导入我的 rails 3 数据库。我不知道

如果有人知道如何在控制器中编写 curl,我将不胜感激。

知道如何解决这个问题吗?

【问题讨论】:

    标签: ruby-on-rails json curl ruby-on-rails-3.2


    【解决方案1】:

    您可以使用 httparty 通过 post、get 等方式进行 api 调用。

    response = HTTParty.post(
      "https://url/id/ApiGetDeepData", 
      headers: {"Auth-Ticket" => 47827EC1B6871D...}
    )
    

    这种方式不需要导出任何json文件,直接得到json格式的response,可以导出任何你想要的值。

    【讨论】:

      【解决方案2】:

      通常我们不会在 rails 控制器中编写 curl。我使用RestClient,这是一个简单的 Rails 客户端。

      而使用curl的方法是把命令放在``

      里面

      例子:

      `curl http://somedomain/url`
      

      【讨论】:

      • 如果可行,我们将不胜感激接受答案或投票。谢谢!
      • 我在 ruby​​ 中获得了 system() 函数,该函数也将在控制器中执行 curl 命令,但我无法通过键访问结果以获取键的值,你能帮我解决这个问题吗?
      • 如果 system() 工作正常,您可以将其发布为答案。当然,我可以帮助获取值。您可以将其作为问题发布。
      • @przbadu 如果命令运行,我很确定system() 返回true,如果不运行,返回false。它不会像 Srikanth 发布的反勾号解决方案那样为您提供结果。
      【解决方案3】:

      是的,使用 HTTParty 我们可以轻松获取 api 数据。

      response = HTTParty.post("url_to_my_api", body: { signinEmail: ENV["EMAIL"], password: ENV["PASSWORD"] }
      )
      
      result = HTTParty.post(
        "url_to_my_api", 
        headers: {"Auth-Ticket" => response["ticket"]}
      )
      

      这对我很有帮助。

      编辑: 更正语法

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 2011-05-01
        • 1970-01-01
        • 2012-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-23
        • 2011-04-26
        相关资源
        最近更新 更多