我需要处理一些第三方API,需要https连接。 我什至有一个证书文件 mycert.pem 并尝试以这种方式连接 API:
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.ca_file = File.join(Rails.root, "data", "certs", "mycert.pem")
https.ca_path = [Rails.root, "data", "certs"].join("/")
https.start {
data = {
<here some request data>
}.to_json
https.request_post([API_HOST, API_URL].join('/'), data) {|res|
print res.body
}
}
但我总是遇到此 API 的授权错误,就像我的证书无效(或过时)一样。即使我确定这不是真的并且我的客户端问题,也会导致其他客户端使用此 API(和相同的证书)连接没有问题。
所以,问题是
从 ruby 中 https 连接服务的正确方法是什么?也许我丢了东西或做错了什么?
最佳答案
我没有那个特定问题的答案,但你可以尝试很多库来做这件事,这可能会帮助你解决问题。
看看这个很棒的幻灯片比较:
http://www.slideshare.net/HiroshiNakamura/rubyhttp-clients-comparison
我在我的项目中使用法拉第。
关于ruby-on-rails - Ruby/Rails 客户端到 HTTPS API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024614/