(关于安装电话的问题。每位受访者提出的新问题) 我认为'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并解析返回的任何内容并且非常好地处理远程服务器无法回复。
答案 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
答案 1 :(得分:2)
require 'open-uri'
require 'nokogiri'
response = open("http://kickstartme.someplace.com?action=ACTIONNAME&token=XYZXYZXYZ").read
doc = Nokogiri::XML(response)