在ruby中发布github.com的要点不起作用

时间:2011-04-03 04:05:20

标签: ruby-on-rails-3 github http-post gist

我正在尝试通过发布URL在github.com上创建一个新的要点。我已经在C#中完成了它并且它工作正常,但是当我尝试在rails上的ruby中复制时,帖子似乎永远不起作用我总是被重定向到gists / new URL,这表明该帖子未被接受。我认为我只是缺少一些基本的红宝石。

require 'net/https'
require 'open-uri'

url = URI.parse('https://gist.github.com/gists')

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

req = Net::HTTP::Post.new(url.path)
req.form_data = "file_name[gistfile1]=testclip.txt&description=Test Clip&file_contents[gistfile1]=This is my test clip&login=uname&token=secret"
http.start{|h| h.request(req)}['Location']

1 个答案:

答案 0 :(得分:1)

我在这里不知所措,但我猜它与SSL验证模式有关。您需要不进行验证:

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

或给它一些东西来验证:

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.cert = OpenSSL::X509::Certificate.new(ca_cert)

请查看the ca_cert method at Defunkt's Gist gem了解详情(您需要a bundle)。