要刷新Redmine,我需要SVN从我们的post-commit钩子ping我们的Redmine安装。我们的post-commit钩子是一个生成电子邮件的Ruby脚本。我想插入一个电话来做这个:
curl --insecure https://redmineserver+webappkey
此调用可以从命令行进行,但是当我尝试执行此操作时:
#!/usr/bin/ruby -w
REFRESH_DRADIS_URL = "https://redmineserver+webappkey"
system("/usr/bin/curl", "--insecure", "#{REFRESH_DRADIS_URL}")
它不起作用。我如何在ruby中执行此操作?我搜索了'ruby系统卷曲',但我只是有一堆链接将卷曲整合到红宝石中(这不是我感兴趣的)。
答案 0 :(得分:7)
REFRESH_DRADIS_URL = "https://redmineserver+webappkey"
result = `/usr/bin/curl --insecure #{REFRESH_DRADIS_URL}`
但我认为你根本不需要使用卷曲。试试这个
require 'open-uri'
open(REFRESH_DRADIS_URL)
如果证书无效则会变得更复杂
require 'net/https'
http = Net::HTTP.new("amazon.com", 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
resp, data = http.get("/")
答案 1 :(得分:6)
system ("curl --insecure #{url}")
答案 2 :(得分:4)
对于这样一个简单的问题,我不会打扰curl
,我只是做
require 'net/https'
http = Net::HTTP.new('redmineserver+webappkey', 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.get('/')
对于更复杂的问题,我仍然没有发送到curl
,而是使用众多Ruby libcurl
绑定中的一个。
答案 3 :(得分:1)
我最近必须这样做,并尝试了以下工作:
class CurlTest
def initialize()
end
def dumpCurl
test = `curl -v https://google.com 2>&1`
puts test
end
end
curlTest = CurlTest.new()
curlTest.dumpCurl