将'curl'命令添加到sinatra和rails?

时间:2011-02-10 20:21:35

标签: ruby curl

(关于安装电话的问题。每位受访者提出的新问题) 我认为'curl'是'内置'但在sinatra应用程序中得到了一个未定义的方法错误。我需要添加一个宝石吗?

rails 3的相同问题?


应用程序是我必须简单地“点击”外部URL(http://kickstartme.someplace.com?action=ACTIONNAME&token=XYZXYZXYZ)以启动远程进程。

外部网址以以下格式返回描述成功/失败的XML:

<session>
  <success>true</success>
  <token>xyzxyzxyz</token>
  <id>abcabcabc</id>
</session>

所以真的,我需要的只是我的rails和sinatra应用程序点击该URL并解析返回的任何内容并且非常好地处理远程服务器无法回复。

2 个答案:

答案 0 :(得分:2)

使用curb,一个Ruby绑定到libcurl。您将获得所有卷曲功能,而无需使用system

curl -b "auth=abcdef; ASP.NET_SessionId=lotsatext;" example.com

变成

curl = Curl::Easy.new('http://example.com/')
curl.cookies = 'auth=abcdef; ASP.NET_SessionId=big-wall-of-text;'
curl.perform

More curb examples

答案 1 :(得分:2)

require 'open-uri'
require 'nokogiri'
response = open("http://kickstartme.someplace.com?action=ACTIONNAME&token=XYZXYZXYZ").read
doc = Nokogiri::XML(response)